渗透测试思路怎么找未授权接口和隐藏参数
围巢安全笔记
围巢安全笔记
围巢安全笔记
2026年10月20日 08:00
北京
去阅读
渗透测试实战 · 第 17 篇
很多新手做渗透测试,拿到一个网站就开始用扫描器扫,扫完了看报告,报告里有什么漏洞就测什么。这种方式效率很低,而且很容易漏掉真正有价值的漏洞。真正的渗透测试高手,最核心的能力不是\"用扫描器\",而是\"找接口\"和\"找参数\"——找到别人找不到的接口,发现别人发现不了的参数,漏洞自然就出来了。
本文仅限授权渗透测试教学,未经授权扫描/测试属于违法行为。约 2400 字,附 2 个实战干货。
01|为什么\"找接口\"是渗透测试的核心能力
先想一个问题:一个网站的漏洞出在哪里?大部分情况下,漏洞出在\"接口\"上——登录接口可能有SQL注入,文件上传接口可能有上传漏洞,用户信息接口可能有越权,订单接口可能有逻辑漏洞。接口是网站的\"功能入口\",所有的业务逻辑都通过接口来实现,所以接口也是漏洞最集中的地方。
但是,一个网站的接口,你在页面上能看到的只是一小部分。很多接口是\"隐藏\"的——比如后台管理接口、内部测试接口、废弃但没删除的接口、移动端专用接口、第三方对接接口。这些接口往往防护更薄弱,因为开发者觉得\"用户找不到这些接口\",所以就没怎么做安全防护。而渗透测试的核心,就是找到这些\"隐藏接口\"。
打个比方,一个网站就像一栋大楼,你在一楼大厅能看到的门(接口)都是有保安(安全防护)守着的。但是这栋楼可能有后门、侧门、消防通道、地下室入口、屋顶天窗,这些门很多没有保安,甚至根本没锁。渗透测试就是要找到这些\"隐藏的门\",然后从这些门进去。
02|找未授权接口的6种方法
方法1:资产梳理——先搞清楚目标有多大
思路:在开始找接口之前,先把目标的资产摸清楚。一个公司可能不止一个网站,可能有主站、子站、移动端、管理后台、测试环境、API网关、第三方对接系统。每个系统都有自己的接口,而且很多系统之间是有关联的——比如测试环境的接口可能没有做权限校验,但是能访问生产环境的数据。
工具类别:子域名枚举工具、端口扫描工具、指纹识别工具、资产测绘平台。
注意事项:资产梳理要全面,不要只盯着主站。很多高危漏洞都出在边缘系统上——比如一个没人维护的旧子站,或者一个测试环境的管理后台。资产梳理做得越全面,找到漏洞的概率就越大。
方法2:目录/路径枚举——找那些\"不应该存在\"的路径
思路:用字典对网站的路径进行枚举,看看有没有一些\"不应该存在\"但是确实存在的路径。比如/admin、/manager、/backup、/test、/dev、/api、/swagger、/console、/phpmyadmin等等。这些路径很多是开发者忘记删除的管理后台、测试页面、备份文件,往往没有做权限校验。
工具类别:目录扫描工具、自定义字典。
注意事项:字典的质量决定了扫描的效果。不要用网上那种几万条的大字典,大部分都是没用的。要根据目标的技术栈(比如Java、PHP、Python)来定制字典,针对性地扫描那个技术栈常见的路径。比如Java应用就重点扫/WEB-INF、/META-INF、/actuator等,PHP应用就重点扫.php、.bak、.sql等。
方法3:Swagger/OpenAPI文档发现——接口的\"说明书\"可能就摆在那
思路:现在很多后端项目用Swagger/OpenAPI来做接口文档,开发者可以通过一个URL直接查看所有接口的定义、参数、返回值。但是很多项目在上线的时候,忘记把Swagger文档关掉或者加上权限校验,导致任何人都能看到完整的接口文档。这相当于把接口的\"说明书\"直接摆在了攻击者面前。
常见的Swagger路径:/swagger-ui.html、/swagger/、/api-docs、/v2/api-docs、/v3/api-docs、/openapi.json、/redoc、/doc.html。
注意事项:除了Swagger,还有其他类型的接口文档,比如RAP、YApi、ShowDoc、Apidoc等,这些文档系统如果暴露了,也能拿到大量接口信息。另外,有些项目虽然关掉了文档页面,但是接口数据的JSON文件还能访问,比如/v2/api-docs这种,直接访问就能拿到所有接口的定义。
方法4:前端JS接口提取——接口都写在JS里了
思路:现在的网站大部分是前后端分离的,前端通过JavaScript调用后端接口。所有的接口地址、请求方式、参数,都写在前端的JS文件里。只要把网站的JS文件下载下来,用正则提取里面的接口路径,就能拿到大量的接口信息。这种方法比目录扫描精准得多,因为提取出来的都是真实存在的接口,不是猜的。
工具类别:JS文件下载工具、正则提取工具、Burp Suite的JS分析功能。
注意事项:JS文件可能被压缩混淆了,需要先格式化再提取。另外,有些接口路径是动态拼接的,不是完整写死的,需要结合上下文来分析。还有,JS文件里可能包含一些注释掉的接口、测试接口、废弃接口,这些往往是防护最薄弱的。
方法5:搜索引擎语法——用搜索引擎帮你找接口
思路:搜索引擎的爬虫会抓取互联网上的大量页面,包括一些本来不应该被索引的页面。通过搜索引擎的高级语法,可以找到目标网站上一些隐藏的路径和接口。比如用site:target.com inurl:admin来找管理后台,用site:target.com filetype:pdf来找PDF文件,用site:target.com inurl:api来找API接口。
常用语法:site(指定站点)、inurl(URL中包含关键词)、intitle(标题中包含关键词)、filetype(指定文件类型)、\"\"(精确匹配)、-(排除关键词)。
注意事项:除了通用搜索引擎,还可以用专门的网络空间搜索引擎,比如FOFA、Shodan、ZoomEye、Quake等。这些搜索引擎专门扫描互联网上的设备和服务,能找到很多普通搜索引擎找不到的资产,比如暴露的管理后台、未授权的API、测试环境等。
方法6:权限矩阵对比——找那些\"权限没配对\"的接口
思路:很多系统有多个角色——普通用户、VIP用户、管理员、超级管理员。每个角色能访问的接口应该是不一样的。但是开发者在做权限控制的时候,经常会犯错误——比如某个接口本来应该只有管理员能访问,但是权限配置错了,普通用户也能访问;或者某个接口做了前端权限控制(菜单不显示),但是后端没做权限校验,直接访问URL就能进去。通过对比不同角色的权限矩阵,就能找到这些\"权限没配对\"的接口。
工具类别:Burp Suite的对比功能、权限测试插件。
注意事项:做权限对比的时候,要准备多个不同权限的账号,然后用每个账号去访问所有能找到的接口,记录哪些接口能访问、哪些不能。然后对比不同账号的访问结果,找出异常——比如普通用户能访问管理员接口,就是越权漏洞。这种方法虽然比较耗时,但是能发现很多扫描器发现不了的逻辑漏洞。
03|找接口参数的5种方法
找到了接口之后,下一步就是找参数。很多接口的漏洞,是因为参数处理不当导致的——SQL注入、XSS、命令注入、文件包含、越权,这些漏洞都需要通过参数来触发。但是很多接口的参数不是显而易见的,需要用一些方法来发现。
方法1:抓包分析——看正常请求里都有什么参数
思路:这是最基础也是最重要的方法。用代理工具(比如Burp Suite)拦截浏览器的请求,仔细分析每个请求的参数——URL参数、POST参数、Cookie、Header。很多参数是开发者加的但是前端没有用到的,比如debug参数、test参数、admin参数,这些参数可能会触发一些特殊的逻辑。
注意事项:抓包的时候要把网站的所有功能都点一遍,不要只看首页。每个功能点都会产生请求,每个请求都可能有不同的参数。另外,要注意那些\"隐藏参数\"——比如在HTML的注释里、在JS变量里、在表单的隐藏字段里,可能有一些没有提交但是存在的参数。
方法2:参数Fuzz字典设计——用字典猜参数名
思路:很多接口的参数名是有规律的,比如id、page、size、sort、order、type、status、keyword、search、filter、debug、test、admin、token、key、sign、callback、\_、timestamp等等。用这些常见的参数名组成字典,对接口进行Fuzz,看看哪些参数是有效的。
工具类别:参数Fuzz工具、Burp Suite的Intruder功能。
注意事项:参数Fuzz的时候,要给每个参数一个特殊的值(比如一个随机字符串),然后看响应中有没有出现这个值,或者响应有没有发生变化。如果响应发生了变化,说明这个参数是有效的。另外,要注意参数的大小写——有些系统对参数名大小写不敏感,有些敏感,都要试。
方法3:隐藏参数发现——找那些\"文档里没写\"的参数
思路:很多接口有一些\"隐藏参数\"——这些参数在正常的请求里不会出现,在文档里也不会写,但是如果你加上了,就会触发一些特殊的逻辑。比如debug=true会打开调试模式,返回更多的错误信息;admin=1会提升权限;test=1会进入测试模式;\_method=PUT会把POST请求改成PUT请求。这些隐藏参数往往能带来意想不到的漏洞。
常见隐藏参数:debug、test、admin、root、super、\_method、\_token、\_csrf、callback、jsonp、format、type、source、from、redirect、url、next、return、continue。
注意事项:隐藏参数的发现需要经验和想象力。要多思考开发者可能会加哪些调试参数、测试参数、兼容参数。另外,可以参考同类型系统的参数设计——比如很多Java框架都有类似的参数,很多PHP框架也有自己的特殊参数。
方法4:IDOR越权测试思路——参数值的\"水平越权\"
思路:IDOR(Insecure Direct Object Reference,不安全的直接对象引用)是最常见的逻辑漏洞之一。原理很简单:接口通过一个参数来指定要操作的对象(比如user\_id=123表示操作ID为123的用户),但是后端没有校验当前用户是否有权限操作这个对象。攻击者只要把user\_id改成别人的ID,就能操作别人的数据。
测试思路:准备两个不同的账号A和B,用A账号登录,找到一个操作A自己数据的接口(比如查看个人信息、查看订单、修改密码),记录请求中的对象ID参数。然后把这个参数改成B的ID,看看能不能访问到B的数据。如果能,就是IDOR漏洞。
注意事项:IDOR漏洞的关键是找到\"对象标识参数\"——可能是id、user\_id、order\_id、product\_id、file\_id、doc\_id等等。每个涉及到具体对象操作的接口都要测。另外,不要只测GET请求,POST、PUT、DELETE请求也要测——查看别人的数据是越权,修改/删除别人的数据危害更大。
方法5:GraphQL/API网关常见问题
思路:越来越多的系统开始用GraphQL或者API网关来统一管理接口。这些技术有自己的特点,也有自己常见的安全问题。比如GraphQL的内省查询(introspection)如果没有关闭,攻击者可以直接查询到所有的接口定义、类型、字段,相当于拿到了完整的接口文档。API网关如果配置不当,可能存在路径穿越、权限绕过、未授权访问等问题。
GraphQL常见问题:内省查询未关闭、批量查询攻击(一次请求发大量查询)、深度嵌套攻击(构造很深的嵌套查询导致DoS)、字段建议功能泄露接口信息。
API网关常见问题:路径穿越(/api/../admin)、权限绕过(去掉某个Header就能绕过认证)、未授权访问(某些路径没有配置权限校验)、限流缺失(可以无限调用导致DoS)。
干货渗透测试学习路径与合规建议
想学好渗透测试,按照这个路径来,少走弯路:
# 第一阶段:打基础(1-2个月)
- 计算机网络:TCP/IP、HTTP/HTTPS、DNS、路由交换
- 操作系统:Windows/Linux基础、常用命令、权限管理
- Web基础:HTML/CSS/JavaScript、前后端交互、Cookie/Session
- 编程语言:Python(写脚本)、SQL(数据库操作)
- 工具:Burp Suite基础使用、浏览器开发者工具
# 第二阶段:学漏洞(2-3个月)
- Web漏洞:OWASP Top 10,每个漏洞都要理解原理、
掌握利用方法、了解防御措施
- 漏洞类型:SQL注入、XSS、CSRF、文件上传、文件包含、
命令执行、逻辑漏洞、越权、SSRF、XXE
- 靶场练习:DVWA、Pikachu、sqli-labs、upload-labs
- 每个漏洞都要在靶场上亲手复现,不要只看理论
# 第三阶段:提能力(3-6个月)
- 信息收集:子域名枚举、端口扫描、指纹识别、
目录扫描、JS分析、搜索引擎语法
- 漏洞挖掘:在真实靶场(比如Vulhub、Bugku)上练习
独立发现漏洞的能力
- 工具进阶:Burp Suite高级用法、sqlmap、nmap、
目录扫描工具、子域名枚举工具
- 代码审计:学会看简单的PHP/Java代码,
从代码里发现漏洞
# 第四阶段:实战(持续)
- 合法靶场:HackTheBox、TryHackMe、攻防世界
- 漏洞平台:补天、漏洞盒子、教育SRC(在合法合规的前提下)
- CTF比赛:参加Web方向的CTF,提升实战能力
- 持续学习:关注安全资讯、学习新的漏洞类型和攻击手法
# 合规建议(非常重要):
1. 只在获得书面授权的测试环境中进行渗透测试
2. 未经授权扫描/测试他人系统属于违法行为
3. 不要用学到的技术做任何违法的事情
4. 在漏洞平台提交漏洞时,遵守平台规则,不泄露漏洞细节
5. 发现高危漏洞时,及时通知厂商,不要公开利用
6. 始终保持对法律和道德的敬畏之心
渗透测试是一把双刃剑,用好了能保护网络安全,用不好就是违法犯罪。始终在合法合规的框架内学习和实践。
渗透测试的核心能力,不是会用多少工具,而是\"找接口\"和\"找参数\"的能力。工具谁都会用,但是能找到别人找不到的接口、发现别人发现不了的参数,这才是真正的水平。这篇讲的都是方法论,具体的操作需要你在靶场上反复练习,才能真正掌握。
最后再次强调:本文所有内容仅限授权渗透测试教学使用。未经授权对他人系统进行扫描、测试、攻击,属于违法行为,将承担法律责任。请始终在合法合规的框架内学习和实践。
围巢安全笔记
不生产焦虑,只分享踩过的坑和挖过的洞
你还有什么找接口的技巧?评论区聊聊 👇
有想聊的话题,后台留言告诉我
往期回顾
- AI安全的六大漏洞:从训练数据到供应链,每一层都可能被攻破
- 大模型越狱:那些让AI\"不听话\"的基础手法
- AI圈黑话大全:一篇搞懂大模型、Token、微调、RAG、Agent
- 提示词注入攻击:AI时代的新安全威胁
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论