JS逆向之國航登錄
- 2019 年 12 月 4 日
- 筆記
抓包
網站如下:http://www.airchina.com.cn/www/jsp/userManager/login.jsp 下面是登錄的抓包:

很明顯 userName 和 password 這兩個參數被加密了。
全局搜索參數 userType 或者 upassword。因為 JS 程式碼一般是根據輸入框的 id 標籤取相應的值,然後做加密!

id標籤
搜索結果如下:

結果
猜測應該是 RSA 加密!
分析
在加密的位置打上斷點,重新發請求:

其中 RSAUtils 是一個對象,encryptedString 是該對象中的函數,所以我們先將這個對象的定義找出來。
點擊該函數進入,可以發現 RSAUtils 的定義及其相應的函數都在這個 JS 文件中,直接一把梭,將該文件中的 JS 程式碼全部複製下來吧:

注意在將 userName 和 password 加密之前執行了 bodyRSA() 函數.
所以也將bodyRSA 函數對應的的 JS 程式碼複製下來。最終本地 JS 文件內容如下:

最後,自己寫個 JS 函數,執行一下,並和抓包的數據進行對比驗證結果:

password 加密結果一致!這個破解比較簡單,適合給入門的朋友用來練手。
總結
可以看到在流程當中比較重要的地方就是: 1.找規律,尋找這些數據的加密規則 2.調試 JS,使用瀏覽器或者在本地進行調試 3.模擬數據,將這些數據通過程式碼模擬生成,然後加入到數據當中