這篇文章主要介紹“JS逆向技術(shù)如何使用”,在日常操作中,相信很多人在JS逆向技術(shù)如何使用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”JS逆向技術(shù)如何使用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)公司-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、服務(wù)器托管雅安、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),歡迎聯(lián)系:18980820575
先打開(kāi)這次的目標(biāo)網(wǎng)站--淘大象(https://taodaxiang.com/credit2)
打開(kāi)「開(kāi)發(fā)者工具」就自動(dòng)進(jìn)入debug,我們先格式化看看能不能通過(guò)重寫函數(shù)解決。
顯然不是很好解決,所以我們?cè)囋囃ㄟ^(guò)「條件斷點(diǎn)」的方法繞過(guò)這個(gè)反爬。
我們?cè)?3393 與 3395 行右鍵添加「Add Conditional breakpoint」并在出現(xiàn)的對(duì)話框中輸入「false」,這個(gè)時(shí)候無(wú)限debbuger的反爬就被我們繞過(guò)了。
解決完反爬措施,我們刷新頁(yè)面查看頁(yè)面請(qǐng)求,很快就定位到請(qǐng)求接口、加密參數(shù)等信息。
請(qǐng)求接口:
加密參數(shù) sign :
通過(guò)抓包請(qǐng)求我們定位到了接口和加密參數(shù),我們?cè)囍ㄟ^(guò)搜索sign關(guān)鍵字定位一下加密位置。
通過(guò)搜索我們找到三個(gè)包含關(guān)鍵字的文件,通過(guò)檢索文件,很快定位到了sign值加密的位置:
很明顯這個(gè)js文件經(jīng)過(guò)一定程度的混淆,現(xiàn)在有兩種方法解決:
一是直接扣代碼,繞過(guò)debugger之后扣這個(gè)代碼不要太簡(jiǎn)單。
二是通讀加密,直接改寫成python加密。
這個(gè)加密比較簡(jiǎn)單,整體是md5加密這點(diǎn)通過(guò)分析請(qǐng)求可以猜到,多次請(qǐng)求加密都不變,接下來(lái)就是分析是哪些字段加密成md5值。
這里比較明顯的是js中的兩段代碼:
_0x2c114b['XDFEp']
這個(gè)方法是將字符串拼接
_0x2c114b['zANjZ']
這個(gè)方法是取字符串的MD5值
經(jīng)過(guò)斷點(diǎn)調(diào)試,發(fā)現(xiàn)最后字符串是由「查詢的關(guān)鍵字」+ 「固定的key」+ 「查詢的關(guān)鍵字」+ 「type參數(shù)值」拼接成的。
比對(duì)兩種方式,通過(guò)python方法改寫更加方便,主要代碼如下:
from hashlib import md5def md5value(s): a = md5(s.encode()).hexdigest() return a
到此,關(guān)于“JS逆向技術(shù)如何使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!