自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Jsrpc學習——某條加密參數(shù)Sign變化的網(wǎng)站hook教程

開發(fā) 后端
今天我們介紹的這個網(wǎng)站是cookie參數(shù)不變,但是加密參數(shù)Sign變化的一個網(wǎng)站,一起來使用jsrpc來攻破它吧!

大家好,我是皮皮。

1、這里使用的網(wǎng)站是fec2bc913be604a5162540c03d45532c,MD5加密處理過的。

2、需要抓取首頁相關信息,如下圖所示。

3、打開瀏覽器抓包,然后打斷點調(diào)試,依次點擊右邊的Call Stack內(nèi)的東西,直到找到加密函數(shù),里邊的值對應請求參數(shù)即可判定。仔細尋找,發(fā)現(xiàn)加密的函數(shù)在這里了。下圖直接用的是十一姐的圖,十一姐文章原文鏈接:

https://blog.csdn.net/weixin_43411585/article/details/123030973

4、之后可以在控制臺輸入指令window.dcpeng = window.byted_acrawler.sign,其中window.byted_acrawler.sign為加密函數(shù)。注意:這個地方挺重要的,很多時候我們會寫成ct.update(),這樣會有問題!加了括號就是賦值結果,沒加就是賦值整個函數(shù)!千差萬別。

5、關閉網(wǎng)頁debug模式。注意:這個地方挺重要的,很多時候如果不關閉,ws無法注入!

6、此時在本地雙擊編譯好的文件win64-localhost.exe,啟動服務。

7、之后在控制臺注入ws,即將JsEnv.js文件中的內(nèi)容全部復制粘貼到控制臺即可(注意有時要放開斷點)。

8、連接通信,在控制臺輸入命令var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=para&name=test");

9、隨后繼續(xù)輸入命令:

// 注冊一個方法 第一個參數(shù)get_v為方法名,
// 第二個參數(shù)為函數(shù),resolve里面的值是想要的值(發(fā)送到服務器的)
// param是可傳參參數(shù),可以忽略
demo.regAction("get_para", function (resolve, param) {
console.log(param);
var res = dcpeng(param, {"url":"https://www.toutiao.com/?wid=1641423780855"});
resolve(res);
})

這個地方要記得傳參,不然你拿不到數(shù)據(jù)的。(這里排查了好久才出來)

10、之后就可以在瀏覽器中訪問數(shù)據(jù)了,打開網(wǎng)址 http://127.0.0.1:12080/go?group={}&name={}&action={}&param={} ,這是調(diào)用的接口 group和name填寫上面注入時候的,action是注冊的方法名,param是可選的參數(shù),這里續(xù)用上面的例子,網(wǎng)頁就是:http://127.0.0.1:12080/go?group=para&name=test&action=get_para

11、如上圖所示,我們看到了那個變化的參數(shù)v的值,直接通過requests庫可以發(fā)起get請求。

12、現(xiàn)在我們就可以模擬數(shù)據(jù),進行請求發(fā)送了。

13、將拷貝的內(nèi)容可以丟到這里進行粘貼:http://tool.yuanrenxue.com/curl

14、之后將右側的代碼復制到Pycharm中即可用,非常便利。

15、之后就可以構造請求了,加一個整體循環(huán),然后即可獲取翻頁的內(nèi)容,整體代碼如下所示。

# coding:utf-8
# @Time : 2022/5/10 16:30
# @Author: 皮皮
# @公眾號: Python共享之家
# @website : http://pdcfighting.com/
# @File : 頭jsrpc.py
# @Software: PyCharm
import requests
import json
import urllib.parse
import time
param_url = "http://127.0.0.1:12080/go?group=para&name=test&action=get_para"
response = requests.get(url=param_url).text
response_json = json.loads(response)
sign = response_json["get_para"]
print(sign)
behot_time = int(time.time())
params = {
"offset": 0,
"channel_id": 0,
"max_behot_time": 1641416108,
"category": "pc_profile_recommend",
"aid": 24,
"app_name": "toutiao_web",
"disable_raw_data": "true",
"_signature": sign
}
url = f'https://www.toutiao.com/api/pc/list/feed'
response_detail = requests.get(url, params=params).json()
print(response_detail["data"])

運行結果如下圖所示,和網(wǎng)頁上呈現(xiàn)的數(shù)據(jù)一模一樣。

16、至此,請求就已經(jīng)完美的完成了,如果想獲取全部網(wǎng)頁,構造一個range循環(huán)翻頁即可實現(xiàn)。

小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。

責任編輯:龐桂玉 來源: Python共享之家
相關推薦

2022-02-21 10:27:45

jsrpcPython實戰(zhàn)教程

2022-02-09 10:32:19

jsrpcjsrpc工具網(wǎng)絡爬蟲

2024-08-30 15:03:43

2021-02-14 00:17:10

加密貨幣數(shù)字貨幣比特幣

2025-01-09 10:49:05

2012-08-10 14:31:12

Web

2011-06-20 14:11:41

網(wǎng)站優(yōu)化

2023-06-06 07:17:44

云變化管理策略

2013-07-25 14:47:46

網(wǎng)站分析網(wǎng)站流量分析訪問量變化

2011-04-08 10:15:11

2009-01-06 15:20:01

2015-09-15 14:00:11

2014-04-15 15:15:45

加密Google

2010-01-21 11:09:33

2011-05-19 17:54:54

2011-06-29 15:06:00

SEO

2021-02-03 20:20:34

ReacHook數(shù)據(jù)

2011-06-16 18:09:51

網(wǎng)站優(yōu)化

2021-10-04 14:56:09

機器學習函數(shù)參數(shù)

2010-11-01 17:30:01

點贊
收藏

51CTO技術棧公眾號