ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OWASP OFFAT 快速上手:3 分钟完成一次 API 漏洞扫描

OWASP OFFAT 快速上手:3 分钟完成一次 API 漏洞扫描 OWASP OFFAT 快速上手3 分钟完成一次 API 漏洞扫描【免费下载链接】uvicornAn ASGI web server, for Python. 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn你不需要手写攻击请求。给OWASP OFFAT一份 OpenAPI 规范文件它就能自动生成测试用例对每个接口执行一轮API 安全测试最后输出一份漏洞扫描报告。这是目前上手最快的 API 自动化漏洞扫描工具之一完全免费MIT 协议。解决什么问题传统 API 安全测试很费劲要人工梳理每个端点、参数、请求体要逐个手工构造 SQL 注入、越权这类攻击请求接口一多就扫不完上线前只能凭感觉。OFFAT 的做法是反过来从 OpenAPI/Swagger 规范出发自动解析端点和参数构造模糊测试Fuzz即向接口灌入异常数据观察行为数据批量发送请求并汇总结果。三种角色都能直接受益后端开发提交代码前自查接口测试工程师功能测试之外补一轮自动化安全测试安全工程师作为基线扫描快速圈出高风险端点。整体扫描流程定义在 src/offat/tester/handler.py测试用例的生成逻辑在 src/offat/tester/generator.py想深入可以直接读这两个文件。看看它能检测哪些漏洞OFFAT 覆盖了 OWASP API Top 10 里的多项常见风险检测项检查内容Restricted HTTP Methods端点上是否存在规范里没声明的 HTTP 方法SQLi参数与路径中的 SQL 注入BOLA对象级越权用 A 的凭证能否读到 B 的资源水平越权Data Exposure响应里是否泄露了不该出现的数据BOPLA / Mass Assignment批量赋值 / 对象属性被越权覆盖Broken Access Control访问控制是否可被绕过Command Injection基础命令注入XSS / HTML Injection基础 XSS 与 HTML 注入SSTI基础模板注入扫描时会自动为参数填充测试值随机数据生成逻辑见 src/offat/tester/fuzzer.py。安装并完成首次扫描装好工具、跑通第一条扫描命令一共两步。安装pip 一键完成python -m pip install offat执行扫描准备一份 OpenAPI/Swagger 规范JSON、YAML 均可也支持直接传 URL然后offat -f swagger.json工具会自动识别规范版本Swagger 2.0 或 OpenAPI v3解析全部端点并逐个执行检测日志实时打印每个检测模块的进度。想看全部可用参数随时执行offat -h。读懂扫描报告扫描结束终端以表格输出每个端点的检测结果。主要看三列result该测试项是否通过×表示存在风险data_leak响应中是否存在数据泄露result details具体风险描述例如 Endpoint performs HTTP method not documented 表示端点存在未声明的 HTTP 方法。拿官方 Petstore 示例跑一遍/pet/findByStatus会被发现存在未声明的 POST 方法/user/login等接口会暴露 SQL 注入风险。注意data_leak与result是相互独立的两个维度——结果标通过不代表没有数据泄露解读时两列都要看。用进阶参数控制扫描 ️掌握下面 5 个常用参数扫描会明显更可控保存报告-o report.html -of html共 4 种输出格式json、yaml、html、table限速-rl 100表示每秒 100 个请求避免压垮被测服务只扫指定路径-pr /user用正则圈定关心的端点附加请求头-H Authorization: Bearer token用于需要鉴权的接口走代理-p http://localhost:8080可挂 Burp Suite 抓包观察实际请求。另外如果测试需要模拟不同权限的账号比如 BOLA 场景要两个角色用-tdc test_data_config.yaml指定 YAML 数据配置校验逻辑参考 src/offat/config_data_handler.py。接入 CI/CD 流水线 想把 API 安全测试固化到发布流程OFFAT 提供 3 种集成方式Docker 方式docker compose up -d启动 API 服务把 OpenAPI 文档 POST 到/api/v1/scan/接口异步拿到扫描任务 ID 与结果API 方式执行python -m offat.api启动 REST 服务接口定义见 src/offat/api/app.py配套交互文档在http://localhost:8000/docsGitHub Action 方式在仓库 workflow 中引用 OFFAT action 并传入规范文件地址扫描结果自动上传为构建产物。接入流水线后扫描发现高风险端点时检查项就会像下面这样标红失败阻止有问题的版本进入发布阶段动手前先看这 3 点OFFAT 目前处于Beta 阶段运行中偶尔会出现异常结论请以多次扫描的交叉验证为准只在你有权测试的系统上跑未经授权扫描他人服务可能触犯法律报告里result通过不等于绝对安全结合data_leak列综合判断。一份 OpenAPI 规范几分钟就能变成一份漏洞扫描报告。手上有规范文件的话现在就可以装一个offat对着你的服务跑第一条扫描命令——第一次跑完你会对自己的接口到底漏没漏有更具体的答案。【免费下载链接】uvicornAn ASGI web server, for Python. 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表