1. 程式人生 > >再解決不了前端加密我就吃shi

再解決不了前端加密我就吃shi

## 參考文章 [快速定位前端加密方法](https://gv7.me/articles/2018/fast-locate-the-front-end-encryption-method/) [滲透測試-前端加密測試](https://blog.csdn.net/weixin_39190897/article/details/103358609) ## 前言 最近學習挖洞以來,碰到資料做了加密基本上也就放棄了。但是發現越來越多的網站都開始做前端加密了,不論是金融行業還是其他。所以趁此機會來搗鼓一下。 ![](https://img2020.cnblogs.com/blog/1893076/202010/1893076-20201001161159500-2072143326.png) 從上圖可以看到,網站在前端對我的賬號密碼做了加密處理。前端加密的好處在於防止資料被劫持後直接洩露使用者資訊,增加攻擊者成本。雖然有https,但是也有被破解的風險。再者國內很多網站都沒有設定https,所以前端加密會進一步提高使用者資料的安全性 但對於我這樣一個菜雞,就算是洞放在我面前我也不一定能找到,更何況是加了密。太難了。 ## 工具 **phantomJS**:`https://phantomjs.org/download.html`,使用方法: phantomJS.exe decrypt.js **jsEncrypter** :`https://github.com/c0ny1/jsEncrypter` 簡便方法: 1)下載打包好的 jar 檔案:`連結:https://pan.baidu.com/s/1gDqmTVdYRD6nH5CfoqxavA 提取碼:go8h` 2)新增到 BURP 擴充套件 3)在 jsEncrypter 下載地址裡下載模板檔案,即`https://github.com/c0ny1/jsEncrypter/tree/master/script` 裡的 `phantomjs_server.js` 一般流程: 1)尋找加密函式 2) 編寫 phantomJS 執行指令碼,只需要將實現加密演算法的 js 檔案引入模板指令碼,並在模板指令碼的 js_encrypt 函式體中完成對加密函式的呼叫。當然也可以不引入實現加密演算法的 js 檔案,直接在 js_encrypt 函式體中實現加密演算法,並呼叫 如下是 phantomjs_server.js 裡的部分內容: ``` /* 1.在這引入實現加密所有 js 檔案,注意引入順序和網頁一致 */ loadScript("script-1.js"); loadScript("script-2.js"); loadScript("script-n.js"); /**********************************************/ ... function jsEncrypt(burp_payload){ var new_payload; /* 2.在這裡編寫呼叫加密函式進行加密的程式碼,並把結果賦值給new_payload */ /*********************************************************/ return new_payload; } ``` 3)在終端中輸入 `phantomJS.exe phantomjs_server.js `,然後在 burp 裡操作就行了 ## 步驟演示 ### 在 phantomjs_server.js 檔案中匯入網頁中實現加密演算法的 js 檔案(差不多就是依賴檔案),方便之後直接呼叫加密函式 ``` /* 1.在這引入實現加密所有 js 檔案,注意引入順序和網頁一致 */ loadScript("script-1.js"); loadScript("script-2.js"); loadScript("script-n.js"); /**********************************************/ ``` **通常來說,如果一個網站的 js 檔案沒有做混淆,並能輕鬆找到加密函式,且加密演算法比較簡單的話,其實是不需要匯入 js 檔案的** **可以直接將加密函式複製或者自己編寫即可,但是往往加密演算法的實現比較複雜,需要引入許多依賴,所以還是匯入較好,後續編寫加密演算法再呼叫其中的依賴** 此時可能有人就會問了,我要是知道實現加密演算法的 js 檔案是那個,我還看個 JB 文章呢! 確實,說的不錯。以下提供兩個解決辦法 * 匯入所有 js 檔案 嗯,是個好辦法。 ![](https://img2020.cnblogs.com/blog/1893076/202010/1893076-20201001165014970-713928195.png) 不多哈,也就億個。 * 通過關鍵字尋找 js 檔案 通過 `ctrl+shift+f` 全域性搜尋 `encrypt、aes、des、md5、key、iv、rsa` 等關鍵字過濾一波再匯入 ![](https://img2020.cnblogs.com/blog/1893076/202010/1893076-20201001165743221-1399757337.png) 不錯不錯,少了 3 個