聖誕節到了, 這不,我來送 "禮物" 了,X江酒店登陸頁面的參數加密破解。地址以下:python
aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4v
瀏覽器輸入上方解密後的地址,F12 打開瀏覽器開發者工具,隨意輸入一個帳號和密碼。這裏密碼輸入我通常用的 123456,抓包以後以下圖:編程
有兩個加密的參數 black_box 和 password.瀏覽器
這裏提供兩種定位加密代碼的方法: 一、search 欄搜索上述兩個加密參數; 二、這是個 xhr 的請求,能夠經過下 xhr 斷點來定位函數
經過 「black_box」 搜索,結果只有一個 JS 文件。工具
點擊左下角的大括號美化 JS,定位到加密位置。打上斷點加密
重發請求,請求會在斷點處停下來. 這個 fmOpt.getinfo() 函數就是咱們要找的 black_box,斷點停下後,能夠點進去3d
看到這些奇奇怪怪的變量,並且全部變量名看起來都長的差很少。你內心確定在想,這是什麼鬼。別慌!這就是 JS 混淆後的代碼。直接拉到最上面,能夠看到有不少變量的定義調試
因此這部分代碼,咱們是須要扣出來的。若是你以爲混淆的代碼看起來很是的難受,你能夠選擇寫個腳本用正則或者 replace() 來作替換,好比你能夠在 Conlose 輸出查看它的廬山真面目code
固然,在這裏不替換也能夠執行。不管你選擇了何種方法,前提條件都須要找到完整代碼,不能有遺漏,不然執行不了。對象
咱們主要扣取的代碼是 oO00oo 對象中的 OOQo0o 函數。
因此裏面定義變量或對象都須要扣取。扣完以後,經過調試來判斷還缺乏哪些變量,這裏經過瀏覽器來進行調試,點擊 sources,選擇 +New snippet,粘貼上咱們剛扣取的代碼
文件名稱能夠隨意命名,以後右鍵選擇運行
運行完以後在下方 conlose 進行調試!通常都要通過反覆調試添加代碼後,才能正常運行。這裏直接出結果了。
black_box 參數完成了,接下來是 password ! 重發請求,斷點繼續停在了 black_box 加密處!
能夠看到,在對 black_box 加密以前,password 就已經完成加密了。因此咱們根據調用棧往前找
前面兩步就能找到 password 的加密代碼,看到這個 encryptAES 有沒有很熟悉,沒錯就是 AES 加密!遇到這種加密都不用扣代碼...
好了,一切都解開了!密鑰 n,偏移量 a,咱們直接用 crypto-js 來執行!
完美!和抓包的結果一致,能夠睡覺了..下次再見~
瞭解更多內容,煩請關注本人公衆號, Python編程與實戰