burpsuite 修改HTML,BurpSuite调用JavaScript处理Payload,通过JS完全自定义处理逻辑

0×01 引言

大家在使用burp的intruder模块时,一定遇到过已有payload processing不能满足需求的情况。

例如某些系统使用了复杂的加密算法对参数加密之后传给服务器,当我们要对payload做复杂处理时,burp自带功能不能满足要求,只能自己写脚本翻译算法,这样一来,一定程度上进行了很多重复性工作,比如:

b202cfb9aabfc77a8d384934d44c05ca.png

从上图可以看出,password与nonce两个参数是js加密后传输的,如果要用字典爆破,必须用相同的算法对payload加工之后才可以。

有经验的朋友应该从url和参数中看出来了,这是小米路由器的登录逻辑。接下来我就以小米路由器的登录操作来演示今天要分享的工具:JSRainbow,一个可以架通js和burp的精简插件。

可以直接下载jar包导入,或者下载源代码再做修改。

此处最关键的是思路,工具本身只是一个彩虹通道,我写完之后发github,大家可以随意发挥修改。

0×02 前端加密逻辑分析

以小米路由器登录为示例,接下来我们看一下前端的加密逻辑:

e10af7cf895ffb156e17dd9f69bfdb32.png

从上图可以看出,两个参数分别调用了Encrypt中的init和oldPwd方法,我们再看方法中的具体内容:

ce1044cda6a8388b96aa49e44cb5b3e2.png

从方法中可以看出,秘钥和偏移量是按照规则自定义的,nonce参数调用了nonceCreat方法生成,nonceCreat中又采用了本机的mac地址+时间+随机数+特殊字符的方式生成最终结果。

而oldPwd方法采用了crypto-js库中SHA1算法生成,生成的时候,结合了nonce参数+原来的pwd+自定义的key秘钥。

如此一来,如果要自己写脚本翻译上述代码的话,太浪费时间了,最关键的是,每次碰到类似情况都得定制化。

为了解决类似问题,接下来和大家分享一下burp调用js代码来fuzz的思路。

0×03 Burp Suite调用JS

第1步:导入JSRainbow

导入成功之后,如下图所示:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值