隐藏API端点发现指南

admin 2025-12-30 01:32:48 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档介绍隐藏API端点的发现方法与风险。开发者常遗留调试路由导致泄露。建议结合被动侦察(分析JS、WaybackMachine)与主动探测(ffuf)挖掘。文中列举了常用工具与GraphQL技巧,通过案例强调全面侦察对发现高危漏洞的重要性,并提醒需遵守伦理规范。 综合评分: 86 文章分类: WEB安全,渗透测试,SRC活动,漏洞分析,安全工具


cover_image

隐藏 API 端点发现指南

开卷其他方向的

黑鸟

2025年12月28日 23:22 广东

所有 Web 应用都依赖 API—— 这些无形的桥梁将用户操作与数据库连接起来。但实际情况是,并非所有端点都是可见的,部分端点被隐藏或未公开,例如:

  • /api/v2/internal/users
  • /api/admin/deleteUser
  • /api/dev/test_endpoint

这类端点是开发者用于调试、测试或预发布环境的内部路由。它们通常不会在前端界面显示,但只要知道路径,就能正常响应请求。这一特性使其成为漏洞赏金猎人和渗透测试人员的重点关注对象。

一、黑客思维:像开发者一样思考

隐藏 API 端点的存在源于开发者的工作习惯。在应用开发过程中,开发者通常会:

  1. 应用上线后仍保留预发布环境的 API
  2. 忘记删除调试或管理路由
  3. 为移动端或内部仪表盘留下未关联的端点

因此,测试人员不能仅像机器人一样扫描网站,而需要站在开发者的角度思考:”如果我开发这个功能,会如何命名端点?” 这是发现隐形攻击面的关键切入点。

二、第一步:被动侦察 —— 寻找线索

被动侦察指在不发送主动请求的情况下收集数据,具体方法如下:

1. 分析 JavaScript 文件

开发者常将 API URL 或端点硬编码在.js 文件中。可使用 LinkFinder 工具提取 JavaScript 中的端点:

# 克隆并运行LinkFindergit clone https://github.com/GerbenJavado/LinkFinder.gitcd LinkFinderpython3 linkfinder.py -i https://target.com/static/main.js -o cli

该命令会输出类似以下的 URL:

  • /api/v1/users
  • /api/internal/logs
  • /api/admin/backup

通过这种方式,无需与服务器交互即可发现隐藏路径。

2. 爬取存档页面

Wayback 机器(网页存档工具)会存储开发者可能已遗忘的旧 URL。可通过以下组合命令查询:

echo "target.com" | waybackurls | grep "/api/"

这条命令可能会发现早已弃用但仍有效的路由,例如:

  • https://target.com/api/v1/test
  • https://target.com/api/dev/login

三、第二步:主动探测 —— 验证端点有效性

收集到候选端点后,需进行安全测试。可使用 curl 或 ffuf 等自动化工具,以下是两种常用方法:

1. Python 快速探测脚本
import requestsBASE = "https://target.com"endpoints = [    "/api/internal/users",    "/api/admin/config",    "/api/dev/test"]for ep in endpoints:    url = BASE + ep    r = requests.get(url)    print(f"{r.status_code} - {url}")

若返回结果中包含:200 - https://target.com/api/admin/config,则表明该隐藏端点处于活跃状态。

2. 目录模糊测试

使用 ffuf 工具可高效爆破隐藏 API:

ffuf -u https://target.com/api/FUZZ -w /usr/share/seclists/Discovery/Web-Content/api.txt -mc 200,301,302

该工具会尝试数百个可能的路由,并返回存在的端点。测试时需严格遵守测试范围,避免超出频率限制。

https://github.com/ffuf/ffuf

四、常用工具集

  • LinkFinder

    :JavaScript 文件端点提取工具

  • Waybackurls

    :Wayback 机器 URL 查询工具

  • ffuf

    :目录模糊测试工具

  • Burp Suite

    :集成化渗透测试平台

  • curl

    :命令行 HTTP 请求工具

五、实战案例:发现隐藏管理 API

在一次漏洞赏金挖掘中,测试人员在 JavaScript 文件中发现了 /api/internal/exportData 端点。发送 GET 请求后返回 401 未授权状态,随后测试人员复制普通用户请求中的 Authorization 头信息重新请求,成功获取到仅管理员可见的数据导出 JSON 响应。这一隐藏端点最终被判定为高危漏洞。该案例表明,绝不能忽视 JavaScript 文件中隐藏的线索。

六、务必遵守伦理规范

  1. 严格在漏洞赏金项目或授权测试范围内操作
  2. 仅进行概念验证,不进行恶意利用
  3. 避免访问用户生产数据
  4. 按规定流程提交漏洞报告

安全研究的本质是通过发现问题提升防护能力,而非破坏系统。

七、高级技巧:GraphQL 自省

部分现代应用使用 GraphQL API,若启用自省功能(Introspection),相当于获取了完整的 API 使用手册。可通过以下命令测试:

curl -X POST https://target.com/graphql \  -H "Content-Type: application/json" \  -d '{"query":"{ __schema { types { name fields { name } } } }"}'

若返回包含大量查询和变更操作的响应,则成功获取了完整的 API 架构。

八、黑客发现隐藏端点的三种核心方式

1.利用浏览器开发者工具

打开目标网站→审查元素→网络标签→筛选 fetch/XHR 请求,常能发现前端未显示的 API 请求,如 /api/v1/config、/api/private/featureflag。

2.Burp Suite 结合字典

使用 Burp Intruder 或 ffuf 工具,搭配 API 专用字典进行测试,例如:

ffuf -u https://target.com/api/FUZZ -w ~/wordlists/api.txt -mc 200,403

推荐字典:SecLists API 端点字典、API 模糊测试专用字典。

3.提取 JavaScript 中的端点

通过以下命令批量提取 JS 文件中的 API URL:

grep -oP '(https?:\/\/[^\s"']+\/api\/[^\s"']+)' *.js

LinkFinder、JSParser 等工具可自动化完成这一过程。

九、开发者隐藏端点的原因及安全风险

开发者将这些路由保留在生产环境中,通常出于以下想法:

  • “这仅供内部使用”
  • “以后再删除”(但往往不了了之)
  • “没人会发现”

事实上,攻击者总能找到这些隐藏端点。隐藏 API 可能导致以下安全风险:

  • 敏感用户数据泄露
  • 认证机制绕过
  • 遗留管理面板暴露
  • 云配置信息泄露

十、实战案例

某安全研究人员发现了 /api/v2/users/exportAll 端点,该端点可导出所有用户的邮箱地址 CSV 文件,且未设置认证和频率限制。研究人员通过漏洞赏金项目提交后,获得了 2000 美元奖励。

这一案例充分说明,全面的侦察工作至关重要, 发现的端点越多,找到高危漏洞的概率就越高。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:黑鸟 开卷其他方向的《隐藏 API 端点发现指南》

评论:0   参与:  0