這篇文章主要介紹“JS逆向如何實(shí)現(xiàn)”,在日常操作中,相信很多人在JS逆向如何實(shí)現(xiàn)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”JS逆向如何實(shí)現(xiàn)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
從策劃到設(shè)計(jì)制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、域名注冊(cè)、虛擬空間、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。
打開(kāi) 開(kāi)發(fā)者模式 抓包 很快就可以看到下面這個(gè)請(qǐng)求返回的是我們需要的數(shù)據(jù):
我們先根據(jù)這里的請(qǐng)求,寫(xiě)一份代碼測(cè)試一下哪些是我們必須的參數(shù):
類似這樣:
import requests
url = "http://www.gsxt.gov.cn/affiche-query-area-info-paperall.html"
querystring = {"noticeType":"11","areaid":"100000","noticeTitle":"","regOrg":""}
payload = "draw=1&start=0&length=10"
headers = {
'Cookie': "__jsluid_h=aa1c7a0fc461a8ea63747a4b02956b38; __jsl_clearance=1565006542.706|0|D0rZ6Fm9vgqQ2QyKbNgIlZRkMsw%3D; SECTOKEN=6968716378603526401; UM_distinctid=16c61a8e0d03f5-01bbcf42e0196a-37647c02-13c680-16c61a8e0d17c1; CNZZDATA1261033118=2135658768-1565002015-http%253A%252F%252Fwww.gsxt.gov.cn%252F%7C1565002015; JSESSIONID=40B833BC895E78C1A2E6C2D74C1DE6F8-n2:2; tlb_cookie=S172.16.12.42",
'Origin': "http://www.gsxt.gov.cn",
'Accept-Encoding': "gzip, deflate",
'Accept-Language': "zh-CN,zh;q=0.9",
'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36",
}
response = requests.post(url, data=payload, headers=headers, params=querystring)
print(response.text)
通過(guò)不斷刪除 headers 中的參數(shù)并觀察返回值,來(lái)判斷哪些是必須攜帶的參數(shù),哪些是無(wú)關(guān)緊要的參數(shù)。
測(cè)試過(guò)程比較繁瑣就不一一截圖演示,同時(shí)建議放慢測(cè)試請(qǐng)求速度,否則會(huì)觸發(fā)網(wǎng)站的反爬措施。
經(jīng)過(guò)測(cè)試可以發(fā)現(xiàn) UA 以及 Cookie 中的 __jsluid_h
__jsl_clearance
SECTOKEN
or JSESSIONID
都是不可缺少的參數(shù)。
現(xiàn)在就需要一一找齊參數(shù)是怎樣生成的:
這里的 UA 就不需要分析了,直接復(fù)制瀏覽器的即可,這里需要注意的是這里的 UA 與 Cookie 還有 IP 是對(duì)應(yīng)的,所以出現(xiàn)更換 UA 的情況那么 Cookie 就需要重新生成,這樣的設(shè)置對(duì)于批量爬取的兄die是個(gè)難度不小的點(diǎn),我們抱著學(xué)習(xí)的態(tài)度就不用考慮太多了。
接下來(lái)分析 Cookie 的生成,先看看 __jsluid_h
通過(guò)用瀏覽器抓包 可以看到 __jsluid_h
是通過(guò)請(qǐng)求 Set 進(jìn)來(lái)的,我們照著來(lái)一遍就行。
接下來(lái)看看 SECTOKEN
or JSESSIONID
和上面的參數(shù)套路一樣,區(qū)別在于這個(gè)請(qǐng)求的 Cookie 中必須帶上 __jsl_clearance
接下來(lái)需要關(guān)注的就只有 Cookie 值 __jsl_clearance
在這幾個(gè)請(qǐng)求包里反復(fù)篩選都沒(méi)有發(fā)現(xiàn)這個(gè)值是怎么寫(xiě)入的(怕漏掉的可以用 Fiddler 抓),那么就只可能是 js 生成的了。
通過(guò)不帶 Cookie 的方式請(qǐng)求一次,可以看到網(wǎng)頁(yè)返回了和上次文章中加密二類似的 js 代碼 ,按照上次文章的套路,我們復(fù)制到 Console 中測(cè)試一下。
測(cè)試流程:
先把 eval 改成 console.log 讓結(jié)果打印出來(lái)。
把測(cè)試結(jié)果復(fù)制出來(lái)格式化,可以看到格式化后的代碼分為兩個(gè)部分,主要的是上面的 Cookie 生成代碼。
所以單獨(dú)把上半部分代碼復(fù)制出來(lái)調(diào)試即可,需要注意的是通過(guò) Python 調(diào)用的 Node 環(huán)境不支持 document 這類瀏覽器屬性所以調(diào)試的時(shí)候需要將它去除或在 Node 下執(zhí)行不報(bào)錯(cuò)即可。
通過(guò)調(diào)試我們生成了下面這個(gè)字符串。
運(yùn)用至 Python 中,即可請(qǐng)求到需要的數(shù)據(jù)了。
丟個(gè)效果圖,溜了。
到此,關(guān)于“JS逆向如何實(shí)現(xiàn)”的學(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í)用的文章!
網(wǎng)頁(yè)標(biāo)題:JS逆向如何實(shí)現(xiàn)
文章網(wǎng)址:http://sd-ha.com/article26/jisocg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、用戶體驗(yàn)、網(wǎng)站內(nèi)鏈、響應(yīng)式網(wǎng)站、、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)