发现常见漏洞
IDOR、XSS、SSRF
发现常见漏洞 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。
最常见也最实用的漏洞
少数几种漏洞类型因为常见且影响重大,占据了大多数漏洞赏金。请先掌握这三种:
- IDOR — 通过可预测的 ID 访问其他用户的数据
- XSS — 将脚本注入页面
- SSRF — 让服务器获取攻击者指定的 URL
本课将展示如何系统地寻找这三类漏洞。
理解 IDOR
当应用使用用户提供的标识符获取对象,却没有检查该用户是否拥有该对象时,就会出现不安全的直接对象引用(IDOR)。
修改 ID,就能访问他人的数据。这是访问控制缺陷,而不是注入漏洞。
# Your own invoice
GET /api/invoices/1001 Authorization: Bearer <your-token>
# Change the ID - do you get someone else's?
GET /api/invoices/1002 Authorization: Bearer <your-token>有效寻找 IDOR
要寻找 IDOR,请创建两个账户并进行比较。任何通过 ID 引用对象的地方都值得检查。
- 从账户 A 捕获一个用于获取 A 的数据的请求
- 使用账户 B 的会话重放该请求,但替换为 A 的对象 ID
- 如果 B 能看到 A 的数据,那就是 IDOR
请留意 URL、JSON 请求体、请求头,甚至 base64 或 UUID 形式中的 ID。
# Original (account A)
POST /api/profile/update
{ "user_id": 5001, "email": "a@example.com" }
# Tamper: use account B's session, keep A's user_id
# If A's profile changes, broken object-level authorization.理解 XSS
跨站脚本(XSS)是将会在另一位用户的浏览器中运行的 JavaScript 注入进去。主要有三种类型:
- 反射型 — 载荷在即时响应中被原样返回
- 存储型 — 载荷被保存并提供给其他用户(影响最大)
- 基于 DOM — 客户端 JS 不安全地将攻击者输入写入 DOM
测试 XSS
先注入一个独特标记,查看输入会在何处以及以何种方式被反射,然后构造适合该上下文的载荷(HTML 正文、属性或脚本)。
上下文决定了哪种载荷能够跳出当前环境并执行。
# Probe reflection with a unique canary
?q=xss7391canary
# Basic HTML-context payload
<script>alert(document.domain)</script>
# Attribute breakout
" onmouseover=alert(1) x="证明 XSS 的影响
简单的 alert(1) 可以证明代码执行,但审核人员希望看到影响。请展示攻击者实际能够窃取或执行的操作。
- 读取 JS 可以访问的 CSRF 令牌或会话信息
- 展示
document.domain以证明来源 - 对于存储型 XSS,展示它在受害者账户中触发
绝不要真正窃取真实用户的会话,只需展示这种能力即可。
理解应用中的 SSRF
在漏洞赏金场景中,SSRF意味着找到一个会获取您控制的 URL 的功能。可能的候选位置包括:
- Webhook URL、回调 URL
- 会获取远程资源的图像/PDF 生成器
- URL 预览或链接展开功能
- 从 URL 导入的功能
将这些功能指向内部端点或元数据端点,以证明其影响。
通过带外方式确认 SSRF
当响应中不显示获取到的内容时,请使用带外服务器确认目标是否发起了请求。交互回调可以证明存在盲 SSRF。
Burp Collaborator 或 interactsh 等工具会为您提供一个能够记录访问的唯一 URL。
# Give the app your unique OOB URL
POST /api/webhook
{ "callback": "http://abc123.oast.fun/" }
# If abc123.oast.fun logs a DNS/HTTP hit, the server fetched it = SSRF.使用代理进行寻找
这三类漏洞都可以通过拦截并篡改请求来发现。拦截代理是核心工具。
- 使用 Burp Suite 或 OWASP ZAP 捕获/修改流量
- 使用 Repeater 重放并调整单个请求
- 使用 Intruder/模糊测试器测试大量 ID 或载荷
深入掌握代理的用法,比掌握任何单一技术都更有价值。
串联漏洞以扩大影响
最高额的赏金来自漏洞串联。一个中等严重程度的漏洞加上另一个漏洞,可能会变成严重漏洞。
- SSRF 访问云元数据后,可能导致凭据被窃取和账户接管
- IDOR 暴露令牌后,可能导致账户完全失陷
- 管理面板中的存储型 XSS 可能导致管理员账户被接管
请始终思考:这个漏洞可以与什么漏洞结合?
谨慎并在范围内进行测试
这些漏洞会触及真实数据和真实用户。请遵守道德规范:
- 使用您自己的测试账户,除证明漏洞所必需的范围外不要查看真实用户数据
- 避免可能在真实用户处触发的存储型 XSS 载荷,将其限制为仅对您自己触发
- 对于 SSRF,不要深入访问内部系统,证明基本能力后立即停止
负责任地展示影响,才能让您受到安全港政策的保护。
快速检查
您以用户 B 的身份登录,使用 B 的会话重放请求,但将对象 ID 替换为用户 A 的对象 ID,结果收到了 A 的私密数据。这属于哪种漏洞?
回顾:发现常见漏洞
您已经学会了如何寻找价值最高的三类漏洞。
- IDOR:比较两个账户,篡改对象 ID,检查是否执行所有权验证
- XSS:探测反射位置,使载荷适配上下文,证明实际影响
- SSRF:寻找获取 URL 的功能,通过带外方式确认盲漏洞
- 串联漏洞以造成严重影响(例如通过 SSRF 访问云元数据)
- 使用拦截代理,并始终在范围内操作
下一步:将发现的问题写成能够获得赏金的报告。
常见问题解答
「发现常见漏洞」课时是免费的吗?
是的 — 「发现常见漏洞」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。
「发现常见漏洞」这节课中我会学到什么?
IDOR、XSS、SSRF 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ethical Hacking Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「发现常见漏洞」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?
能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。