探索

漏洞收集

时间:2010-12-5 17:23:32  作者:娱乐   来源:休闲  查看:  评论:0
内容摘要:去年十一月,HackerOne上有个叫“tz”的白帽挖到某头部交易所一个逻辑漏洞,赏金给了五万美金。他做的事很简单:在提现接口里把金额参数改成负数。系统没校验,余额直接反向增加。这个漏洞从提交到修复不

去年十一月,漏洞收集HackerOne上有个叫“tz”的漏洞收集白帽挖到某头部交易所一个逻辑漏洞,赏金给了五万美金。漏洞收集他做的漏洞收集事很简单:在提现接口里把金额参数改成负数。系统没校验,漏洞收集余额直接反向增加。漏洞收集这个漏洞从提交到修复不到四十八小时,漏洞收集但在此之前它已经活了至少三个月——没人知道有没有人已经在暗处用过。漏洞收集

漏洞收集这件事,漏洞收集外行听起来像黑客电影里的漏洞收集桥段,实际上大部分时间极其枯燥。漏洞收集你面对的漏洞收集是成千上万行代码、几十个API端点、漏洞收集一堆看起来毫无关联的漏洞收集参数。真正的漏洞收集突破往往来自一个很小的异常:某个请求返回了不该返回的字段,某个错误码跟其他接口不一致,某个时间戳差了零点几秒。

我认识一个做漏洞众测的朋友,他的工作习惯是每天花两小时翻目标厂商的更新日志。不是看新增了什么功能,而是看他们“悄悄修了什么”。很多公司修复安全漏洞时不会写进changelog,但版本号变了、某个接口的返回结构微调了,这些痕迹藏不住。他靠这个方法在某个电商平台的退款流程里找到一个越权漏洞,从发现到提交用了不到二十分钟。

工具能帮你的,比你想的少

市面上的扫描器多如牛毛,Burp Suite、Nuclei、Xray,每个都说自己覆盖了多少CVE。实际用起来呢?对通用型漏洞确实管用,Struts2、Log4j这种,扫一遍能捞出来。但逻辑漏洞、业务漏洞,扫描器基本瞎。它不知道你的业务规则是什么,不知道“这个订单应该只属于当前用户”,不知道“优惠券不能叠加使用超过三次”。

所以漏洞收集的核心竞争力不在工具,在于对业务的理解深度。你得比开发更清楚这个功能的设计意图,然后才能找到意图和实现之间的裂缝。一个支付接口,开发想的是“用户会正常付款”,你想的是“如果我跳过付款步骤直接调回调呢”。

那个被忽略了四年的漏洞

说个真实案例。某大型社交平台的头像上传功能,前端做了文件类型校验,后端也做了。但后端校验的是Content-Type头,而Content-Type是客户端可以伪造的。有人上传了一个.php文件,把Content-Type改成image/jpeg,后端放行,文件落地。更离谱的是,上传目录有执行权限。

这个漏洞在漏洞平台上被提交过三次。第一次被标为“重复”,第二次被标为“信息不足”,第三次才被确认。从第一次提交到最终修复,隔了四年。四年里,这个上传点被无数人扫过,但大部分人扫到“有文件类型校验”就停了,没往下走一步。

漏洞收集最怕的就是这种“看起来安全”的假象。一个输入框有长度限制、有特殊字符过滤、有CSRF token,看起来固若金汤。但你试试在长度限制的边缘塞入截断字符呢?试试把token置空但保留cookie呢?试试用不同的HTTP方法请求同一个端点呢?

写报告比挖漏洞更折磨人

挖到漏洞只是第一步。写一份能让厂商看懂的漏洞报告,有时候比挖洞本身还费劲。你得把复现步骤写得足够细,细到运维人员照着做就能重现;又得把危害说清楚,不然容易被当成“低危”打发。我见过有人挖到SQL注入,报告里只写了一句“存在SQL注入”,然后附了个sqlmap的截图。这种报告大概率被忽略。

好的报告长什么样?请求包、响应包、复现步骤、影响范围、修复建议,一样不少。最好再录个屏。厂商的安全团队每天收几百份报告,没时间猜你想表达什么。

漏洞收集这个事,说到底是在跟人的惯性较劲。开发者的惯性是“这样写应该没问题”,运维的惯性是“这个端口应该没人知道”,安全的惯性是“扫过了应该没漏洞”。你打破哪个惯性,哪个地方就可能出东西。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap