前几天,老师在内部群里发消息,说新课程准备开了,想收集一些学员的实战产出作为宣传素材。
我翻看自己最近提交的报告列表,心里有点打鼓:
这些听起来是不是太“基础”了?发出去会不会被圈内大佬吐槽?抱着“反正也不会被选上”的摆烂心态,我还是把最近挖到的几个漏洞案例整理了一下发给了老师。结果师傅很快回复了一句:“就要这个”。
我当时的反应是:啊?这真的可以吗?
我的洞到底有多“朴实无华”
① 短信轰炸(700赏金)
在测试一个系统时,我抓取到了发送验证码的请求接口:
GET /xxx?phone=手机号
观察发现,这个请求参数极其简单,只有一个 phone。于是我尝试了一个最朴素的操作:直接重放请求。
测试结果让人意外:
- 无频率限制:可以连续发送。
- 无图形验证码:无需交互验证。
- 无其他校验:如Token、签名等。
这意味着,攻击者可以针对同一个手机号无限次触发短信发送,造成短信轰炸攻击。


提交时我甚至有点心虚,心想“这么简单不会不算漏洞吧?”。结果审核很快通过,评级为高危,拿到了700元赏金。这让我意识到,很多内部或初创项目在安全基线控制上确实存在疏忽,而这些疏忽正是我们的机会。
一句话总结:内部项目,真香。
② 接口文档泄露(350 + 350 赏金)
这个漏洞的发现过程更加“日常”。在对目标进行渗透测试信息收集时,我习惯性地尝试访问了一些常见的管理和调试接口路径:
/swagger-ui.html
/swagger-resources
没想到,两个路径在生产环境下都能直接访问。
/swagger-ui.html 路径直接返回了完整的 Swagger API 调试界面。

/swagger-resources 路径则泄露了API模块的结构列表。

这意味着所有接口的地址、参数、甚至部分逻辑都暴露无遗,极大降低了攻击者的攻击成本。我将这两个问题作为两个独立的漏洞提交,每个都获得了350元赏金。
当时的内心独白是:“不会吧,这也给钱?” 但我逐渐开始接受一个事实:很多漏洞不是技术上有多难,而是缺乏被发现和重视。
③ 验证码在返回包中泄露 → 任意登录(500赏金)
这个漏洞的利用可以说“有手就行”。在测试用户登录流程时,我抓包发现,在请求短信验证码后,服务器的返回包中直接包含了本次下发的验证码明文,且与用户手机实际收到的完全一致。
利用流程变得极其简单:
- 请求验证码:触发系统向目标手机号发送短信。
- 拦截返回包:在请求的响应中直接获取验证码。
- 使用验证码登录:完成账号接管。


我在提交报告时写得很谦虚:“返回包泄露验证码导致账号可接管”。结果依然被评定为高危漏洞。这再次证明了,基础的安全编码规范(如验证码不落地)在实际开发中常常被忽略。
④ 加解密漏洞导致的任意用户登录(800赏金)
这个漏洞比前三个需要多一步操作,但也完全在脚本小子的能力范围内,全程依靠现成的加解密工具。
利用步骤:
- 获取SessionKey:用户点击“快捷登录”(如微信授权)时,抓包发现返回包中泄露了关键的
session_key。

- 获取加密数据:在后续的绑定或登录请求中,抓取到包含用户手机号的加密数据 (
encryptedData) 和初始向量 (iv)。

- 解密数据:使用工具,输入获取到的
session_key、encryptedData 和 iv,对加密数据进行解密,得到明文的用户信息(包含手机号)。

- 篡改并重新加密:在解密得到的明文中,将手机号修改为任意目标手机号,然后使用相同的
session_key 和 iv 重新加密,生成新的 encryptedData。

- 替换数据包发起请求:将原请求中的
encryptedData 替换为篡改后加密的数据,重放请求。(注意:需要在一定时间内操作,因为 session_key 可能过期)。

- 登录成功:系统错误地将我们篡改后的手机号识别为已登录用户,成功接管账号。

这个漏洞的根源在于服务端完全信任客户端上传的加密数据,且未与后台存储的原始Session进行强绑定校验。
反思:为什么我曾觉得这些漏洞“很水”?
在我以前的认知里,“厉害”的漏洞应该是这样的:
- 复杂的逻辑链路串联
- 需要多步精巧的绕过
- 涉及未公开的0day利用
而我实际挖到的,大多是:
- 接口忘了做频率校验
- 敏感信息直接塞在返回包里
- 测试接口忘记从生产环境关闭
说白了,很多都是“开发忘了关门”式的基础问题。当我向师傅表达“这些洞是不是太简单了”的疑虑时,师傅只反问了一句:“不给钱吗?”
这句话让我瞬间释怀了。
实战后的真实感受
从一个零基础小白到能稳定产出漏洞,时间也就一个多月。我挖到的这些漏洞技术都不复杂,但对我个人而言意义重大:
- 第一次能够持续、稳定地发现漏洞。
- 第一次连续获得SRC平台的赏金。
- 第一次在漏洞挖掘这件事上拥有了强烈的“产出感”。
更重要的是,它彻底改变了我一个核心认知:漏洞的价值不在于它有多“高级”或“炫技”,而在于它是否真实存在并对业务构成威胁。 能换钱的漏洞,就是好漏洞。
我之前最大的障碍是一种“信息差”和“心理门槛”:总觉得漏洞必须得像电影里演的那样高端,导致自己“不敢测、不敢报、不敢试”。这次实战经历完全打破了这层顾虑。
所以,如果以后还有分享素材的需求,我还能贡献不少这样“朴实无华”的案例。毕竟事实已经证明:普通人靠扎实的基本功挖到的普通漏洞,恰恰是安全行业最真实、最普遍的产出现状。 对于刚入门的朋友,我的建议是:别想太多,从这些基础但高发的漏洞类型开始练手,你会更快地建立信心和正向反馈。在云栈社区的【安全/渗透/逆向】板块,你也能找到许多类似的实战思路和工具分享。