《挖漏洞教程》
很多人以为挖漏洞得先会写几千行代码,挖漏或者背下整本《黑客攻防技术宝典》。洞教我第一个挖到的挖漏漏洞,是洞教因为一个登录框没做频率限制。
那是挖漏个后台管理系统,我拿Burp Suite挂上字典跑,洞教每秒大概发四十个请求。挖漏跑了二十分钟,洞教密码没爆出来,挖漏服务器先返回了500。洞教换了个思路,挖漏把请求间隔调到三秒,洞教继续跑。挖漏又过了十分钟,洞教账号锁定了。挖漏锁定的提示信息里带着管理员邮箱——这算信息泄露,但还不算漏洞。真正让我拿到权限的,是那个锁定机制只在登录接口生效,而注册接口可以无限次调用。我注册了一个跟管理员邮箱前缀相同的账号,系统自动把新用户归到了管理员组。就这么进去了。整个过程没写一行exploit,用的是逻辑漏洞。
挖漏洞这件事,工具占三成,思路占七成。工具能帮你扫出一堆低危,但真正值钱的东西往往藏在业务逻辑里。比如一个电商网站,你改一下购物车里的商品ID,发现能看到别人的订单。再比如一个API接口,你把请求里的用户ID从1001改成1002,返回了别人的手机号。这些都不是扫描器能直接告诉你的,得靠手点、靠观察、靠猜。
想开始挖,先别急着找目标。把Burp Suite装好,浏览器代理配好,然后去SRC平台注册个账号。补天、漏洞盒子、HackerOne,随便哪个都行。选一个你觉得功能简单的网站,比如一个在线记事本,或者一个短链接生成器。功能越少,你越容易把每个请求都看一遍。
看什么?看参数。每一个URL里的id=、page=、user=,都试着改改。看返回包。每一个200变成403、变成500、变成别的用户的数 据,都记下来。看Cookie。把session里的值删掉、改掉、换成别人的,看看还能不能访问。看验证码。能不能重复用,能不能爆破,能不能删掉验证码字段直接过。
我见过一个最离谱的漏洞,是在一个论坛的“忘记密码”功能里。输入邮箱,系统发一封重置邮件。邮件里的重置链接是 /reset?token=123456。我试着把token改成123457,页面返回了另一个用户的密码重置表单。也就是说,token是自增的。这种漏洞不需要任何技术,只需要你手贱改一下数字。
当然,不是每次都能挖到。大部分时间你在做重复劳动,点几百个链接,看几千个请求,最后发现一个反射型XSS,还得跟审核员扯皮半天说这个不算重复。但这就是常态。我认识一个挖了三年漏洞的人,他每天固定花两小时做一件事:把目标网站的所有JS文件下载下来,用grep搜“api”、“token”、“secret”、“password”。搜到过数据库密码,搜到过AWS密钥,搜到过内部管理后台的地址。这方法笨,但有效。
最后说个实在的。别一上来就去挖大厂。大厂的漏洞早被职业选手扫过几十遍了,你花一周时间可能连个低危都混不上。去找那些刚上线的小程序、刚融资的创业公司、地方政府的旧系统。这些地方防护弱,审核快,而且经常有惊喜。我第一个被官方确认的中危漏洞,是在一个县级医院的预约挂号系统里。他们的医生排班接口没做权限校验,改一下科室ID就能看到全院医生的手机号。提交后第三天就收到了礼物。
挖漏洞不是考试,没有标准答案。你唯一要做的就是比开发人员多想一步。他们写代码的时候想的是“用户会正常操作”,你想的是“用户会乱来”。就这么简单。
顶: 35738踩: 2933






评论专区