0x00 信息收集
在SRC漏洞挖掘过程中,保证在最短时间内提交”有效”漏洞,自我总结漏洞数量主要来源于三个方面:
一、资产收集;
二、学会使用自动化工具;
三、通过数据包仔细审查业务逻辑。
资产收集作为漏洞挖掘第一步,资产收集的广度,会直接影响漏洞的数量,所以资产收集尤为重要。
这里简单介绍一下资产收集的有关小工具以及方法。
1.1子域名收集
子域名收集推荐几个比较好用的工具:
一、Oneforall
项目链接:https://github.com/shmilylty/OneForAll,Oneforall是一款强大的子域名收集工具,适用于SRC资产收集。
使用方法:python3 oneforall.py --target baidu.com run
二、在线子域名收集工具
在线子域名收集在漏洞挖掘过程中快速收集到第一手资产信息(可能会有以外收获)。
1.2.搜索引擎
挖洞过程中好的搜索引擎可以更快的获取高质量的资产信息,这里推荐两款用的比较多的也是比较好用的资产搜索引擎。
一、Fofa
地址//fofa.so/
Fofa支持与谷歌黑客语法类似的搜索语法,在网页内可以查询检索语句的使用方法,这里就不做过多的介绍。
二、谷歌黑客语法
Google是一个强大的搜索引擎;而对于黑客而言,则可能是一款绝佳的黑客工具。正因为google的检索能力强大,黑客可以构造特殊的关键字语法,使用Google搜索互联网上的相关隐私信息。
这里简单介绍一下谷歌黑客语法的使用技巧,仅作简单介绍,详细使用建议自行百度。
intitle:搜索网页标题中包含有特定字符的网页。例如输入“intitle:上科互联”,这样网页标题中带有上科互联的网页会被搜索出来。
inurl:搜索包含有特定字符的URL。例如输入“inurl:/admin_login”,则可以找到带有admin_login字符的URL,通常这类网址是管理员后台的登录网址。
intext:搜索网页正文内容中的指定字符,例如输入“intext:上科互联”。这个语法类似我们平时在某些网站中使用的“文章内容搜索”功能。
Filetype:搜索指定类型的文件。例如输入“filetype:PDF”,将返回PDF文档。
Site:找到与指定网站有联系的URL。例如输入“Site:www.sunghost.cn”。所有和这个网站有联系的URL都会被显示。
1.3.端口扫描
端口扫描也是常规信息收集中最重要的一项,在之前的很多的SRC漏洞挖掘过程中,很多时候遇到同一个ip开放不同的端口,对应不同的WEB服务,很多时候漏洞往往存在一些花里胡哨的端口服务上。
这里推荐一款端口扫描工具Nmap,Nmap功能比较强大,不仅可以支持端口扫描,资产存存活探测也可以使用其自带的漏洞探测脚本,对漏洞进行探测。
Nmap这里推荐使用图形化界面的,也可以使用现在网上的一些端口扫描工具如小米范端口扫描工具等等。
1.4.指纹识别
通过指纹识别可以快速了解搭建网站使用的什么内容管理系统,以及网站使用的框架信息(CMS:织梦、帝国、XXXOA等等;网站框架:Nginx、Spring boot、Apache、IIS等等)。
这里推荐两款比较简单方便的指纹识别工具。
一、潮汐指纹库
潮汐指纹识别库是由,tide安全团队开发的一款开源的指纹识别库。
二、火狐浏览器自带插件Wappalyzer
1.5.目录扫描
通过对网站url进行扫描可以收集一些网站的资产信息,在后续的漏洞挖掘过程中提供更多有价值的信息(如:网站源码文件、网站安装页面、网站后台管理页面、接口信息页面(swagger ui、api接口等等)、未授权访问页面)。
这里推荐一款常用的目录扫描工具。
Dirsearch
使用方法:python3 dirsearch.py -u http://www.baidu.com -t 30线程可以自行定义,也可以使用”-h”,查看使用方法。
0x01 漏洞探测&漏洞验证
2.1.漏洞扫描
在漏洞探测方面可以使用扫描器(但是得根据客户需求),一般主流的漏洞扫描器如:Goby、Xray、Awvs、Nessus,这里可以使用Goby同时做信息收集和漏洞探测(信息收集功能会比漏洞探测功能效果好)。
2.2.Burp
Burp在漏洞挖掘中使用最广泛,也是最重要的工具之一,可以用于漏洞验证以及漏洞挖掘,由于开源,之前在挖掘漏洞中遇到一些比较有意思的漏洞,这里就用文字简述一下。
越权:越权漏洞简单分为垂直越权、水平越权,可以修改数据包中的一些参数如uid、id等等,遇到过一个比较有意思的垂直越权可以在低权限登录状态下通过修改数据包中路径信息可以访问到高权限的内容。
逻辑漏洞挖掘:逻辑漏洞,通过数据包查看业务逻辑,检查是否存在绕过正常的业务逻辑对正常的业务系统造成影响,分享一个之前某银行业务逻辑漏洞挖掘,漏洞点存在于选择支付方式可以通过修改数据包参数绕过指纹支付和脸部识别支付,逻辑漏洞挖掘推荐B站观看”月神”逻辑漏洞挖掘
这里简单介绍几个比较好用的Burp插件:Fakeip(可以在请求头中加入XFF头)、chunked-coding-converter-master(分片上传可以绕过部分waf如安全狗等等)许多漏洞检测插件。
2.3.其它漏洞探测工具
一、Sqlmap
当手工测试发现某功能点存在SQL注入时可以直接采用sqlmap工具进行快速注入查看数据库表结构。
常用的sqlmap参数:--is-dba、--dbs、--batch、-v 3、--level 5、--temper “绕过waf模块”、--threads=10、--current-user、--dbms="MySQL"、-r
sqlmap中常用的绕过waf的temper脚本:
apostrophemask.py
用utf8代替引号
equaltolike.py
like代替等号
space2dash.py
绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’)
greatest.py
绕过过滤 >
space2hash.py
空格替换为#号 随机字符串以及换行符
apostrophenulencode.py
绕过过滤双引号,替换字符和双引号。
halfversionedmorekeywords.py
当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论
space2mssqlblank.py
空格替换为其它空符号
base64encode.py
用base64编码替换
modsecurityversioned.py
过滤空格,包含完整的查询版本注释
space2mysqlblank.py
空格替换其它空白符号(mysql)
between.py
用between替换大于号(>)
space2mysqldash.py
替换空格字符(' ')(' -')后跟一个破折号注释一个新行(' n')
space2plus.py
用+替换空格
二、Msf
MSF为kali自带的渗透测试工具,功能十分强大,该工具可以用作漏洞验证以及漏洞探测工具,也可以用于后渗透,这里简单说一下MSF可以作为漏洞探测以及漏洞验证非常使用的工具之一如(各种未授权访问(Rsync)、弱口令爆破、Oracle Tns远程监听、MS17-010、CVE-2019-0708等等)
三、开源漏洞探测工具
Fastjson漏洞探测可以使用网上公开的Poc也可以使用Burp插件进行探测。
Shiro反序列化漏洞可以使用github上开源的飞鸿shiro漏洞探测工具。
ThinkPhp可以使用雷石实验室研发的自动检测工具,针对ThinkPhp5.0版本的RCE漏洞可以使用github上的一些开源工具。
这里开源的漏洞探测工具非常多,建议通过关注各个安全团队的微信公众号,完善工具。
总结:
漏洞挖掘方法非常多样,发现漏洞可能是扫描器直接出的漏洞,也有可能是一个不起眼的信息泄露引起的高危漏洞(如swagger UI页面,可以导致调试API接口引发更大的安全漏洞),但是总结两个点:
一、在漏洞挖掘过程中细心查看每一个功能点以及数据包逻辑才是王道。
二、学会利用自动化工具,最后信息收集才是最重要的老铁。
0x02 实践
3.1.之前漏洞挖掘简述
刚开始挖掘漏洞确实可以从公益SRC或者EDU下手,可以先锻炼一下挖洞速度,已经挖洞思路,这里简单介绍一下之前的挖过的公益SRC和一些厂商的专属漏洞。
常规端口漏洞(21、22、389、879、2181、2049、3306、3368、6379、8XXX、9100、9200)
未授权访问&弱口令
在SRC挖掘过程中往往最先考虑的就是端口漏洞,因为未授权访问、弱口令等漏洞危害性比较大,通常定级也是中高危的样子,而且,挖掘也是比较方便快捷。
某厂商存在大量弱口令:
SQL注入类:
SQL注入类漏洞在漏洞挖掘过程中也是很常见的,可以用自己的py脚本结合sqlmap批量跑,但是在综测项目中这种办法并不可行,因为不够快,捞不到钱。还是尝试手工测试比较靠谱。
之前遇到一个比较有意思的sql注入,该注入的回显信息是根据响应体的的字节长度来判断的,返回正确跟返回错误的值固定且不一样。
命令执行类:
命令执行可以根据指纹识别查看当前网站的CMS以及网站所用到的框架、组件,获取信息后可以使用目前公开的POC进行测试是否存在RCE漏洞。
这里记一次之前遇到的一个ThinkPhp5.X框架命令执行漏洞,好不容易找到一个框架漏洞可惜是公益的SRC没有钱,留下了不争气的眼泪。
之前在安恒的雷神众测注册过账号,但是漏洞提交量有限,可以简单看一下,其实专属SRC提交漏洞赚取赏金,其实就是,资产收集,做的好,还有就是挖掘漏洞的时候细心加上耐心,最最重要的一点还是漏洞提交速度,做全世界最快的男人。
还有就是逻辑漏洞,目前逻辑漏洞也是赏金占比比较大的一类漏洞,这里记一次之前某银行的逻辑漏洞挖掘过程,结局比较拉跨,因为当时只是看到了后台的一些数据以及参数,以为跟后台数据有交互就可以定个中危,没想到绕过的仅仅只是前端的校验。
这里直接填写数据然后抓包修改两次返回包,可以绕过前端登录验证直接进入后台。
只是当时没有测试里面的参数,修改密码什么的也没有测试,看来还是得细心才行要,银行的漏洞,低危和中危往往是两个概念,来自金钱的诱惑。