开源项目 | BurpSuite插件:重写一个burpJsEncrypter

admin 2021年8月12日04:51:22评论149 views字数 1064阅读3分32秒阅读模式

写在前面

先说说这个项目为什么会出现。c0ny1师傅写的jsEncrypter其实已经能满足日常需求,我本人也是因为这个项目成为c0ny1师傅的"粉丝"的。

开源项目 | BurpSuite插件:重写一个burpJsEncrypter

使用过的师傅都知道这个项目依赖于phantomjs,别人我不知道,我自己老是忘记phantomjs的二进制我放哪儿了,而且每次启动啥的都比较麻烦。

在学习Java的过程中了解到官方在JDK1.6添加了新的ScriptEngine类,允许用户直接执行js代码,也就是说调用phantomjs这件事可以,但是没必要。

代码编写

看看核心的实现方法:

开源项目 | BurpSuite插件:重写一个burpJsEncrypter

开源项目 | BurpSuite插件:重写一个burpJsEncrypter

调用了加载到内存中的burpJsEncrypter函数,代码如下:

开源项目 | BurpSuite插件:重写一个burpJsEncrypter

是不是很简单...
再说说开发过程中遇到的最大的坑。
在代码中调试时使用System.getProperty("user.dir")获取当前路径时完全OK的,但是加载到内存后再获取就会变成:
/var/folders/tg/z5wcq7jx3s526hykwz0pz2v00000gp/T/burp8120677802571630018.tmp/22js/

导致遍历js文件一致失败。

如何使用

1.将本项目的js目录下的js文件复制到用户目录下的/burp/jsFile目录:

开源项目 | BurpSuite插件:重写一个burpJsEncrypter

文件名咋命名完全无所谓,但是main.js中burpJsEncrypter函数一定要有,需要人工修改的加密逻辑也就是注释中间的内容:

//Java调用的主函数function burpJsEncrypter(rawPayload){
var encryptedPayload;

//===============加密开始=================
encryptedPayload = hex_md5(rawPayload);
//===============加密结束=================
return encryptedPayload;}

如上面的代码中的hex_md5函数是加载到内存中的其他js文件中的函数。实战中只需要把页面中所有涉及加密的js文件下载到这个目录即可。

2.设置Payload处理:

开源项目 | BurpSuite插件:重写一个burpJsEncrypter
开源项目 | BurpSuite插件:重写一个burpJsEncrypter

选完再开始爆破即可。

开源项目 | BurpSuite插件:重写一个burpJsEncrypter

明文在哪儿看?


开源项目 | BurpSuite插件:重写一个burpJsEncrypter

支持再Repeater中加密?

选中要加密的字段,右键选择burpJsEncrypter菜单即可。

开源项目 | BurpSuite插件:重写一个burpJsEncrypter

重要提醒

如果c0ny1师傅那个插件你不会耍的画这个插件你估计也不会耍的,最核心的问题都是找页面中的加密逻辑,然后复制出来运行而已。

即兴开发,Enjoy it~~

本文始发于微信公众号(米斯特安全团队):开源项目 | BurpSuite插件:重写一个burpJsEncrypter

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年8月12日04:51:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   开源项目 | BurpSuite插件:重写一个burpJsEncrypterhttps://cn-sec.com/archives/353876.html

发表评论

匿名网友 填写信息