|
```html 有人花三个月挖穿了一台路由器的获取漏洞固件,最后拿到的获取漏洞东西只值两千美金。另一个人扫了一眼目标网站的获取漏洞登录接口,发现返回包里的获取漏洞debug=1参数没被过滤,十分钟后数据库全量导出。获取漏洞漏洞这玩意儿,获取漏洞从来不讲努力程度。获取漏洞 我最初接触漏洞挖掘是获取漏洞在一个二手论坛上。有人发帖卖某款国产摄像头的获取漏洞管理后台账号,五十块一个。获取漏洞我买了一个,获取漏洞登进去发现固件版本号是获取漏洞V2.1.4_201803。顺手在搜索引擎里敲了这个版本号加“exploit”,获取漏洞跳出来一篇俄语博客,获取漏洞里面贴了一段Python脚本,获取漏洞利用的是/cgi-bin/下一个没鉴权的命令注入点。我把脚本里的IP换成自己的,回车,root权限到手。整个过程不到二十分钟。那台摄像头现在还在我桌上,镜头被我用黑胶布贴死了。 获取漏洞的路径通常分三种。第一种是等,等厂商自己出补丁,然后对比新旧固件,找出被修复的那个函数——这叫patch diffing。第二种是猜,根据常见的开发习惯去构造请求,比如admin/admin、../../../etc/passwd、'; SELECT * FROM users--。第三种最粗暴,直接翻GitHub。有人把公司内部代码传上去了,有人把测试环境的密钥硬编码在客户端里了,还有人把.git目录留在了生产服务器上。你不需要是天才,只需要比写代码那个人多检查一遍。 去年有个案例让我印象很深。一个做跨境电商的朋友找我,说他们后台每天凌晨三点准时多出几百条订单,收货地址全是乱码。我让他把Nginx的access.log导出来,用grep筛了一下POST /api/v1/order的请求。发现所有异常订单的User-Agent都是空的,而且请求间隔精确到毫秒级。再往下查,问题出在优惠券核销接口——它没有做幂等校验。攻击者用脚本把同一个优惠券码并发提交了两千次,每次都能抵扣。修复方案很简单,加一个Redis的SETNX锁。但在这之前,他们已经亏了六万多。 工具方面,Burp Suite的Intruder模块能跑字典,sqlmap能自动注入,nmap能扫端口。可真正好用的东西往往是你自己写的。我有个习惯,每遇到一个目标,先花十分钟写个Python脚本,把它的所有API端点爬一遍,然后对每个参数依次替换成null、0、-1、[]、{ }和超长字符串。这个方法帮我找到过三个越权漏洞和一个反序列化入口。脚本本身不到五十行,但比任何商业扫描器都管用,因为它只针对这一个目标。 法律边界得说清楚。未经授权的扫描和利用,在国内适用《刑法》第二百八十五条,非法获取计算机信息系统数据罪,情节严重的三年起步。我认识一个白帽子,在SRC平台上提交漏洞拿了证书和奖金,后来把同样的漏洞细节发到自己的博客上,没打码,被厂商告了。赔了钱,还留了案底。所以挖漏洞之前,先确认目标在不在授权范围内。不在的话,要么收手,要么走正规众测平台。 漏洞不会消失。只要还有人写代码,就会有人写出带漏洞的代码。区别只在于,你是在厂商的致谢名单里看到自己的名字,还是在法院的判决书里看到自己的名字。 ``` |