再解決不了前端加密我就吃shi
阿新 • • 發佈:2020-10-01
## 參考文章
[快速定位前端加密方法](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 個