在某次金融类众测项目中,笔者发现了一个几乎无从下手的系统,直接访问系统无任何功能,几乎相当于404 Not Found,甚至连JavaScript文件一个都不存在,最终通过渗透经验和一定的运气,拿下了这个高危SSRF漏洞,获得高额漏洞奖金,在此分享一下漏洞挖掘过程,带给大家渗透测试中的一点另类思路~
404 Not Found?首先,给定的系统地址为:
直接访问一下目录看一看:
打开发现一片空白,但是页面空白并不代表是真的空白,HTML源码中可能会加载一些JavaScript文件,渗透测试时,往往会通过页面中直接泄露加载的JavaScript文件,进行审计JavaScript源码,从而挖掘出更多有用的信息。
对如何挖掘JavaScript文件中漏洞,可移步笔者之前发布的真实漏洞案例文章:
回归正题,下一步找寻HTML源码中可能存在的泄露点,直接查看网页源码:
仔细阅读源码,不知道细心的同学有没有发现,其中有3个线索可以延伸利用。
libs/plugins/jquery.js ./html/apply.html?data= cxx/token/decrypt第1点:libs/plugins/jquery.js,加载了JavaScript文件,其路径是:
不过,此处jquery.js完全为前端文件,无任何可利用的信息,于是略过。
第2点:html/apply.html?data=,加载了当前目录下一个html文件,路径为:?data=
结果也是一无所获,经典Nginx的404 NOT Found。
第3点:cxx/token/decrypt,猜测为接口路径。
访问发现也是404,大概是还存在一层接口目录。
一番信息收集后无果后,接下来就是展现真正的技术了!
403 Forbidden?虽然上面的3个可用信息都Pass掉了,不过我们还是猜测,在两个路径之前,可能还存在一层Web应用目录亦或是接口目录,随后展开对Web目录的尝试性爆破,选用一些常见的一级目录。
最终获取到3个403禁止访问的目录:
看来第一次发现得/html/目录确实存在,不过可能是apply.html不存在导致页面的404 Not Found。
一级目录爆破,未发现可用一级目录,仅仅发现了3个静态文件目录。
渗透测试的思路到这也即将中断了,不过此时突然萌生出一个想法:既然不存在能够正常使用的文件,那么我就继续去挖掘403目录下的文件,至少403比404要好多了,至少它是真实存在的目录!
SSRF漏洞继续对/html/目录、/css/目录尝试进行敏感文件扫描,未果。
使用Burpsuite的Intruder模块对/js/目录进行JavaScript文件爆破,终于获取到了可用信息!
天哪,终于是获取到了3个JavaScript文件,是什么时候变成了连发现JavaScript文件都无比激动?
JavaScript文件如下:
通过进一步的信息收集,在/js/common.js文件中发现发现了一级接口目录:/xxxapi/
一级接口目录都做的这么复杂,也难怪目录爆破的时候没有成果了。