- 插件介紹
jsEncrypter:使用phantomjs(一個沒有界面的瀏覽器)啟動前端加密函數對數據進行加密,方便對加密數據輸入點進行fuzz,比如可以使用於前端加密傳輸爆破等場景。
項目地址:https://github.com/c0ny1/jsEncrypter
- 使用場景
在前端滲透過程中,常會遇到需要進行爆破,但密碼字段使用了自定義加密算法加密的情況。此時可以使用Burp配合jsEncrypter插件自定義加密算法進行爆破。流程圖

- 使用介紹
在某單位授權的一次滲透中,抓包發現,目標站點登陸頁面的password字段進行了加密,可以看出不是常見的base64、MD5加密

立馬Ctrl+U翻前端代碼,發現點擊登陸按鈕后,會執行login.js文件中login()方法,大致內容為:將password字段調用RSA加密腳本進行加密

找到RSA加密腳本security.js以及生成RSA公鑰所需的指數和模數

得到以上信息,便可以使用jsEncrypter插件進行爆破。
使用方法:
1、使用mvn將jsEncrypter編譯后,添加到Burp Extender模塊
2、將模板文件 /test/TestScript/Base64/jsEncrypter_base64.js復制一份到 /桌面/jsEncrypter_rsa.js
3、將頁面使用的RSA加密算法security.js文件保存到 /桌面/rsa.js,在jsEncrypter_rsa.js中引入rsa.js加密算法文件,並將頁面login.js調用加密的代碼及生成RSA公鑰所需的指數和模數復制到js_encrypt方法中。(傳入js_encrypt方法中的payload參數為通過Burp傳入需要加密的數據,通過調用rsa.js加密函數加密后,返回RSA加密后的數據newpayload)


4、打開CMD輸入命令:phantomjs.exe jsEncrypter_rsa.js此時phantomjs已經開啟1664端口接收Burp傳入的數據

5、使用Burp intruder模塊進行爆破(設置payload Processing為invoke Burp extension),此時數據已經是經過RSA加密過后的值


6、如爆破成功后,可在CMD窗口中查看對應的正確密碼

