【基础知识】漏洞挖掘经验分享
一、前言
我这里并不讲漏洞挖掘思路,而是漏洞挖掘经验分享。主要是协助小白上手漏洞挖掘,揭开漏洞挖掘的神秘面纱。帮助那些想挖漏洞却又挖不倒,感觉挖洞就是浪费时间、一听到挖洞还会感到莫名“恐惧”的小白同学。大佬路过勿喷,有想法的欢迎在下方留言!
首先说一下漏洞挖掘的前提:
- OWASP Top 10 漏洞基础必须要有,对应pikachu这种靶场;
- 逻辑漏洞挖掘基础,看些相关课程,认真做好笔记;
- fofa、爱企查等高级API等,用于信息收集,非必须,有替代品或其他方式都可以;
为什么不讲漏洞挖掘思路呢?因为现实的挖洞遇到的环境各不相同。比如各公众号分享那些漏洞挖掘的文章,在实战当中是不会有跟他一模一样的资产环境,除非是某个框架的nday,但如果只追求这种,那无非就是跑个脚本,做个脚本小子了。而且有OWASP Top 10 漏洞和逻辑漏洞挖掘思路完全是够用的,其他的无非就是挖洞姿势“骚不骚”。
二、资产划分
我们都知道资产收集的重要性,通过一堆工具去挖掘子域名、小程序等,是为了让我们收集到更多的资产,以便找到存在漏洞资产的薄弱点。包括在HW过程中,红队成员也是通过大量的资产收集,去挖掘目标的薄弱资产,进而发起攻击。
那么,我将收集到的资产划分三大类:一类资产、二类资产、三类资产,具体含义如下
资产等级 | 特点 |
---|---|
一类资产 | 静态站点 |
二类资产 | 有交互功能,但是无用户的站点 |
三类资产 | 有用户权限的站点 |
我们对收集到的资产,首先去重、过存活之后,将剩下的资产划分以上三类,下面是对以上三类资产的打法经验。
三、一类资产打法
静态站点,比如我现在这个博客网站、各大官网站点,基本上没有交互功能,遇到这种站点直接跳过测试。
但是绝大部分的静态站点是伪静态,看上去是一个静态站点,没什么交互,但是点点列表、搜索框搜一搜,相关数据是传递到了后端,实现了交互功能;又或者通过目录扫描,扫描到了有交互功能的二级目录站点,那这种可以放在二类资产中。
因此一类资产在判断时要擦亮眼睛,究竟是一类资产,还是隐藏式的二类资产。同时,一旦确定为一类资产,测试过程中直接跳过测试。
四、二类资产打法
这种站点就是有交互功能,但是又没有用户权限的站点。最经典的就是常说的开局一个登录框。这里我要细分一下,因为二类资产是最常见的资产等级。
1、无用户功能
就是这个系统有交互,但是没有用户登陆,权限划分这种。这种一般就对着交互功能测试就行,能做的事情也算比较局限,扫扫目录、测测交互、看看js代码这些,具体的做法看下面有用户功能处的内容。
这种也是有出洞的可能性,我之前测到过SQL注入。
除此之外还可以做资产升级,就是找用户权限的功能点,扫目录、看看 admin.php、/admin 、/login这些路径会不会出一个用户登录入口,变成有用户功能的站点资产。
2、有用户功能
经典的开局一个登陆框,就是这类有用户功能的资产,但是咱们又没有用户的账号密码,进不去网站,我们在实战中遇到的资产70%以上都是这种。
这种情况下,需要扩大我们的信息面,能做的事情有:
- 弱口令、SQL注入、SQL万能密码、用户名密码爆破
- Google语法、社工搜索用户名密码、默认密码
- 扫目录,看有没有其他的功能界面
- 看JS代码,有没有敏感信息、api接口
- 如果有API接口路由,可以再测试未授权这种
- 逻辑漏洞相关测试,验证码、登陆绕过、短信轰炸那些
- 注册功能的利用,通过register关键字找注册点
- 指纹识别,如果使用了某个框架,查历史漏洞
- fofa搜索同类型站点,观察有无隐藏的交互功能
如果我们能通过注册用户、登陆绕过或者其他的方式进入站点内部,我们就可以提升资产到三类资产。
五、三类资产打法
当我们来到三类资产,也就是在这个站点上,我们是有用户权限的,这个时候我们能测的范围就很大了。站点内部有相当多的功能,起码的用户个人信息这块,头像上传、密码修改的相关功能就有很多测试点。一般用户站点都是区分管理员用户和非管理员用户,这里不展开区分,测试方法是一样的。
在实战当中,如果这个站点是外网资产,往往会有WAF或其他防护的安全措施,像SQL注入、XSS相关的payload很难打入。因此在三类资产中,我们更关注他的权限问题,像未授权、越权、敏感信息泄露之类的漏洞。当然,如果是内网没有防护措施的站点另说。
一般规模不小的站点,他的权限往往是会存在某些问题的。同时,我们在测试过程中,也不能仅仅局限于权限方面的测试,我们还需要主动的发散思维,去寻找更多的可能性,往往会带来更多的惊喜。
六、结尾
当我们将收集到的资产做好资产等级的划分,会让我们对资产会有更加清晰的认知,在漏洞挖掘的过程中会更加的得心应手。如此往复一段时间,漏洞挖掘必然会更加的娴熟。