SRC实战–JS逆向+bp插件autoDecoder导致的全站越权
前提提要:本文漏洞挖掘提到的技术知识学习为hutb_max和嵩艺师傅共同支撑。(本文提及的各项技术只提供参考学习,不可用于非法用途,与作者无关)
回想当时a佬课程学习了JS逆向方向的相关课程,当时对之前挖掘SRC时 X讯,X石部分站点有加密不知道怎么进行测试,当时学完直接进行实操,还利用了AI+JS逆向确实很好用,
但是一般web页面js逆向都很长,无法全部粘贴然后丢给AI分析,还是得学会手动JS逆向,学会思路然后快速定位在进行AI分析这才是正解。
对于JS逆向方面:思路比较常规,第一步肯定是直接打开F12,然后按下Ctrl+Shift+F,进行全局搜索
-
第一个:“查看数据包”。如下数据包中有一个Authorization,而后有各种参数,那我们就可以直接搜索参数,如 “nonce” 或者直接搜索 “Authorization”
如下我们进行搜索直接定位到前端JS加密处,在这里打下断点,就可以在加签名之前把数据改了,从而测试 越权漏洞。
-
第二个:“直接搜索常见关键词”。在正常加密过的网站,一般这些参数名其实是进行了混淆或者封装的,这时我们搜索数据包中的关键词是不可行的,这里我们就可以直接搜索平时遇到的关键词,这里我推荐几个,“encrypt” 和 “decrypt” 。如图,经常会遇到encrypt和decrypt函数一起的,这种格式一般就直接是加密函数和解密函数了,如果有多个就都打上,一般不会太多,然后在加密前修改参数就行。
-
第三个就是:“抓取js文件直接丢给AI分析”,具体的就不说了,懂的都懂。其次还有之前看到月神使用的抓包工具,貌似更加方便,打算这段时间学一下,然后到时候分享给大家
到这里最最最基础的JS逆向思路分析就讲到这里(剩下还有一些验签逻辑和配合yakit热加载,我们在下一篇文章进行学习),这节的基础思路对于一些小行,金融,保险同样是适用的;一些大行会使用全局函数混淆,那种逆向只能一步一步找到逻辑,或者AI分析了。
在2月的时候,Jasmine师傅说盒子开了个新项目,好家伙,火速冲刺查看你。发现给的一般和边缘给的少,索性直接查看核心站,可以注册登录(企业SRC就这点好,一般都可以注册登录)
进入后台,查看数据包,好家伙,随便一个功能点都有一个参数ID值,userId,uuId等等,
这里我们看到数据包存在Csign等字段,这是典型的数据包验签
然后我们进行尝试解签,首先使用我们的第一步“数据包的关键词”
接下来就好办了,打入断点,然后在传参之前修改参数值,但是这里我们报错了,返回包回显数据错误,那说明厂商在后端也进行鉴权。而后我们继续对几个功能点进行了测试发现都是这个问题,这里就可以猜测后端的鉴权逻辑—-对请求包的参数值进行了鉴权,并且对路径存在的数字id也进行了鉴权,到这里,我们就不用对重复的其他功能点进行测试了,以免费心费力。而后在测试到某个添加功能点时发现了感觉可能就没有鉴权的点
这里我们刚刚猜测了是参数值做了鉴权,但是这个发现了一个盲点,这里是参数id值作为一个参数名,跟之前都不一样,不一样那就说明可能存在漏洞,所以我们进行尝试,而后必然成功越权添加,不然咱也发不了文章是不。
然后写自动解签的脚本,需要注意如下,需要严格的固定返回格式!!!!