对软件漏洞的好奇,让我踏上了漏洞赏金狩猎之路。我渐渐发现,想要获得丰厚赏金,并非一定要找到零日漏洞或依赖复杂测试工具——有时在关键位置发现一个“基础款”漏洞,就能带来意想不到的收获。这次在某公司测试环境中发现的简单 SQL 注入漏洞,就为我赢得了 3,500 美元赏金。如果你刚入门漏洞赏金,或是需要提醒自己“基础知识仍具价值”,这个故事或许能给你启发。
一、侦察阶段:锁定测试环境这个“薄弱目标”
当时我正在通过 HackerOne 参与一个私人漏洞赏金计划,目标是一家 B2B SaaS 公司。常规侦察时,我发现了一个测试环境地址:
staging.clientdomain.com
熟悉漏洞狩猎的人都知道,测试环境往往不如生产环境安全——可能用着过时代码、权限配置混乱,监控频率也低。所以只要测试环境在测试范围内,我都会像对待生产环境一样彻底探索,这次也不例外。
我用 Burp Suite 登录公司提供的低权限测试账号,一边操作一边梳理平台的路由和 API 端点,为后续测试打下基础。
二、漏洞发现:可疑“filter”参数暴露注入风险
测试报告下载功能时,我遇到了一个关键 API 端点:
POST /api/report/downloadContent-Type: application/json{"format": "pdf","filter": "status = 'open'"}
这个字段一看就像是会直接插入数据库查询的内容,我决定先用“无损有效载荷”试探:把 filter 改成
"filter": "status = 'open'; DROP TABLE users; --"
我本没指望它真的执行(也不希望执行,避免破坏数据),但服务器返回了 500 内部服务器错误——这是查询语法错乱或错误处理不完善的典型信号,说明我找对了方向。
接着我换了个有效载荷:
"filter": "status = 'open' OR 1=1 --"
结果超出预期:报告返回的数据量明显增多,甚至包含了我作为低权限测试用户本不该看到的内容。那一刻我确定,这就是一个 SQL 注入漏洞。
三、漏洞确认:安全验证避免误判与破坏
为了在不影响目标系统的前提下确认漏洞,我用了几种安全方法:
尝试时间注入 payload ,观察服务器响应延迟;
AND SLEEP(5)
用基础布尔 payload 调整逻辑,看返回结果是否随逻辑变化;
全程监控测试前后的输出差异,确保只验证漏洞不破坏数据。
结果很明确:后端确实把“filter”字段的内容直接注入 SQL 查询,既没做数据清洗,也没使用参数化查询。更关键的是,不同 payload 会导致返回数据明显不同,这绝非误报——漏洞不仅存在,还能跨权限泄露数据。
四、漏洞报告:清晰文档加速处理流程
确认漏洞后,我把所有信息整理成规范报告:
明确标注漏洞所在的端点和请求方法;
附上原始请求、注入请求及对应响应的示例;
用截图对比正常返回与注入后的数据差异;
解释注入点位置和漏洞风险等级;
给出修复建议,比如使用参数化查询或 ORM 框架。
由于计划明确说明暂存环境的问题在范围内,我直接通过 HackerOne 提交了报告。24 小时内,分诊团队就回复:
“已确认 SQL 注入漏洞,将上报工程团队”。
五、收获赏金:3,500 美元与厂商认可
大约一周后,我收到了好消息:
“这是严重漏洞,我们将支付 3,500 美元赏金”。
对几个晚上的侦察和手动测试来说,这个回报相当可观。
更让我开心的是,公司还主动联系我,感谢我在漏洞进入生产环境前发现它——这种认可,丝毫不比赏金的价值低。
六、关键启示:新手也能复用的经验
暂存环境是“宝藏目标”:别忽视测试环境,它们常因防护薄弱成为突破口,只要在范围内,就该彻底测试;
注入漏洞仍具杀伤力:尽管是老牌漏洞类型,但在定制 API 或遗留系统中,注入缺陷依然常见,值得重点关注;
从无损 payload 起步:始终遵守测试范围,优先用不破坏数据的方式验证漏洞,既符合道德也能规避风险;
好报告事半功倍:清晰、完整的报告能帮团队快速理解漏洞,不仅加速处理,也能提高获得高额赏金的概率。
最后的思考
这次经历让我更清楚:“简单”的漏洞不代表没价值。漏洞赏金狩猎不需要你掌握所有高级工具,或只盯着复杂漏洞——耐心、好奇心,以及对 Web 应用行为的敏锐观察,才是更重要的能力。
如果你也在做漏洞赏金,不妨多练基础知识:注入、访问控制、配置错误、侦察……这些都是每天能实际发现、且能拿到赏金的漏洞类型。祝大家狩猎顺利,始终保持道德底线。
想知道更多?关注公众号,加入QQ群,加入我们!
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...