天天看點

攻防比賽_猿人學攻防比賽第一題記錄

實戰位址:

http://match.yuanrenxue.com/match/1
           

打開f12 随即出現了無限debugger反調試

攻防比賽_猿人學攻防比賽第一題記錄

在debugger所在右擊出現的菜單欄點選never pause here 去掉斷點

攻防比賽_猿人學攻防比賽第一題記錄

之後清空控制台。 開始抓包分析,發現隻有一個加密參數m

攻防比賽_猿人學攻防比賽第一題記錄

全局搜尋m=,m: 發現結果 有點多。也沒發現什麼。。。

攻防比賽_猿人學攻防比賽第一題記錄

最後通過ajax請求的回調棧找了線索

攻防比賽_猿人學攻防比賽第一題記錄
攻防比賽_猿人學攻防比賽第一題記錄

複制出來格式化此處代碼

攻防比賽_猿人學攻防比賽第一題記錄

看到這問題範圍就縮小了。。。可以明确oo0O0 函數 和 window.f是關鍵

扣出這部分代碼放到node js 中運作。

攻防比賽_猿人學攻防比賽第一題記錄

然後本着缺啥補啥的原則繼續補下去

攻防比賽_猿人學攻防比賽第一題記錄

缺失的東西可以去控制台找譬如 document.f 值應為多少

攻防比賽_猿人學攻防比賽第一題記錄

因為不停的列印永不言棄。。。淹沒自己的運作結果。。。是以我直接在那句話打了斷點。防止幹擾視線。

攻防比賽_猿人學攻防比賽第一題記錄

繼續分析oo0O0 函數,發現最後有個eval

攻防比賽_猿人學攻防比賽第一題記錄

而且函數最後也隻是傳回了空

可以到控制台或者node中輸出一下

atob(window['b']) , J('0x0', ']dQW'), J('0x1', 'GTu!') , '\x27' + mw + '\x27')
           
攻防比賽_猿人學攻防比賽第一題記錄

格式化分析atob(window['b']) 傳回的代碼發現了window.f的藏身之地。。哈哈哈,

攻防比賽_猿人學攻防比賽第一題記錄

再次回看剛剛輸出的。replace   mwqqppz 等關鍵字。。。嗯。。

window.f的值為hex_md5(mwqqppz),   而mwqqppz被replace成了oo0O0 
           
函數傳入的時間戳字元串參數,到此即可修改代碼為
           
攻防比賽_猿人學攻防比賽第一題記錄

最後放到一個js檔案中供調用(直接用字元串傳入出現了編碼錯誤。換成檔案調用成功了)。成品如下

攻防比賽_猿人學攻防比賽第一題記錄

成功!