最近接了一个单子,做一个Web的安全测试。
二话不说,先上burpsuite进行抓包
发现在请求头中,有下面三个货很烦人
1、Cookie:JSESSIONID=xxxxxxxx
2、X-CSRF-TOKEN:xxxxxxxx
3、x-crc:xxxxxxxx
前两个很常规,不做解释。第三个CRC明显是一个通信包的校验。
于是翻js代码,找到如下内容:
嗯,明显是一个带有校验的时间戳。
这样,如果使用Burp的包重放或者爆破都会受到影响。
于是,使用python写了一段进行绕过。
嗯,成功进行fuzz。
但是在Burp中进行包重放或者爆破还是很难操作。
需要使用 Burp中的Macro自动宏或者自己开发插件来实现。
于是我想起了之前看到的国产Burpsuite工具。Yakit
Yakit在进行包重放的时候,有个功能叫热加载代码。这不就可以完美处理现在的这个问题吗。
于是在请求的数据包中插入热加载的代码。
热加载的代码如下:(这里使用的是yak语言,基于golang开发的。由于刚接触yak不是很熟悉,所以通过http请求调用外部的python代码去实现校验码的计算)
没错,这个url就是我写的生成crc的代码。
最终效果如下:
成功解决时间戳生成校验码的问题。
最后简单说一下这个yakit
确实挺方便,支持像xray一样的插件扫描,也支持单个漏洞插件验证。
插件库也很强大
值得大家一试!!!!
原文始发于微信公众号(平头哥SEC):单兵渗透工具-Yakit 渗透实战