網站是:aHR0cHM6Ly93d3cuZmVuZy5jb20v
話說這個網站在過年前使用了aes算法,當然過年後也是aes,但就是把祕鑰換了,換成更需要解密一段字符串,然後獲得祕鑰,最後請求時候再去用這個祕鑰加密,並且最後發現祕鑰和偏移是一樣的。
- 先來看看它的加密參數吧:
X-Request-Id
這個參數當然用全局搜索大法可以定位出來,如圖:
在r = He(data)
打上斷點,這裏是加密的地方,可以繼續追蹤康康。
- 追蹤到這裏,一目瞭然了吧,但是有個問題,這裏沒有祕鑰,放到
l
上也是wordarray,l是祕鑰,但是經過了處理,那就可以直接把l處理的方法打上debugger,但是發現調試的時候並不會進到這個斷點,原因是在於網頁加載的時候,祕鑰已經完成初始化了。 - 這裏有個很簡單的方法,就可以把祕鑰打印出來,hook或者攔截改js文件,由於不會js的hook就攔截改了它的js文件,直接就吐出來了。
l = r.enc.Utf8.parse(o)
這個是它的祕鑰,o
通過parse
這個方法完成初始化的,那就直接找到它,攔截加入debugger。- 打開charlse(可以用fd,比較喜歡charlse),找到這個js,打斷點
深度刷新該網站,進入響應,然後改就可以了,charlse會幫你吧js格式化好的。
- 成功進入debugger;
- 成功打印出來祕鑰
但是爲甚有兩個?這個其實祕鑰和偏移是一樣的,剩下就猜一猜是哪個就行了,也可以嘗試把那個正確的debug出來,挺簡單的,多點耐心就好了。
總結一下:
js逆向一般來說不太難,一般網站用全局搜索大法+調試就可以破解,當然瑞數這種需要很深的功底+足夠的耐心,一般人就放棄吧,我就是一般人。。。。
最後祝大家新年快樂,爬蟲路上越來越牛逼,還希望疫情早點結束,今年被困在家裏了!!!