如有侵權(quán),請(qǐng)聯(lián)系我刪除?
1、引言
????最近想找個(gè)網(wǎng)站練練手,突然想到朋友之前使用模擬瀏覽器爬過(guò)某安的政府網(wǎng)站的新聞發(fā)布信息,看下今天能不能把他成功逆向一下。
? ??
2、分析
? ? ?通過(guò)分析可以看出這個(gè)網(wǎng)站需要__jsl_clearance_s和__jsluid_s這兩個(gè)cookie才能正常的訪問(wèn)網(wǎng)站

? ??__jsluid_s獲取可以通過(guò)第一次訪問(wèn)鏈接由服務(wù)端返回。
? ? 然后通過(guò)第一次訪問(wèn)返回的內(nèi)容是一個(gè)js腳本代碼,我們給他美化一下
? ??
? ? ? ?
? ? ? 然后在瀏覽器的console執(zhí)行一下,本以為_(kāi)_jsl_clearance_s就弄好了
? ??????????
???????誰(shuí)知再次訪問(wèn)鏈接還是521狀態(tài)碼,再次查看一下返回的內(nèi)容
? ??? ?注:需要由第一次從服務(wù)端返回__jsluid_s和上圖js執(zhí)行后的cookie同時(shí)存在才能成功訪問(wèn)下圖body
? ? ? ?
? ? 給他美化一下,發(fā)現(xiàn)美化后有500多行代碼
? ? ? ?
? ? 到這大概就知道他那兩個(gè)cookie是怎么來(lái)的了
3、逆向js
? ? 1、第一個(gè)比較簡(jiǎn)單我就不說(shuō)了,可以通過(guò)下圖直接執(zhí)行,因?yàn)槲野l(fā)現(xiàn)他里面的語(yǔ)法和Python的語(yǔ)法差異太大了,我也懶得給他替換了就直接使用js2py執(zhí)行了
? ??????
? ? ? ? ? ?2、我們還是主要看下第二個(gè)頁(yè)面返回的東西,我們還是先看一下他的入口函數(shù)在哪里,發(fā)現(xiàn)他的入口在哪個(gè)go函數(shù)中
? ? ? ? ??????????
? ? ? ? 3、通過(guò)document關(guān)鍵字搜索發(fā)現(xiàn)他應(yīng)該是在下圖這兩個(gè)地方設(shè)置cookie的
? ??????????????
? ? ? ? 4、通過(guò)上圖大膽推測(cè)下應(yīng)該是_0x5080('0xea', 'dcAK') +'ie'拼接成cookie關(guān)鍵字來(lái)的
? ??????????
? ? ? ? 5、通過(guò)在console驗(yàn)證確實(shí)是這樣生成的,那我們對(duì)這些_0x5080('0xea', 'dcAK')加密先手動(dòng)的給他替換一下,讓他更有可讀性
? ??????????
? ? ? ? 6、關(guān)鍵函數(shù)
? ??????????
4、使用Python代碼執(zhí)行
? ??????
5、注意的點(diǎn)
? ? 1、&,>>? 需要通過(guò)ctypes.c_int庫(kù)執(zhí)行
? ? 2、這次只正對(duì)sha1加密逆向,這個(gè)網(wǎng)站還有其他加密邏輯