Jsrpc学习——Cookie变化的网站破解教程

大家好,我是皮皮。前几天给大家分享jsrpc的介绍篇,Python网络爬虫之js逆向之远程调用(rpc)免去抠代码补环境简介,感兴趣的小伙伴可以戳此文前往。

今天给大家来个jsrpc实战教程,让大家加深对jsrpc的理解和认识。下面是具体操作过程,不懂的小伙伴可以私我。

1、对Cookie进行hook,需要在浏览器的控制台输入命令Object.defineProperty(document, "cookie", {set:function(a){debugger}})

2、之后点击下一页,进入debug模式

3、依次点击右边的Call Stack内的东西,直到找到加密函数,里边的值对应请求参数即可判定。

4、之后可以在控制台输入指令window.dcpeng = ct.update,其中ct.update为加密函数。注意:这个地方挺重要的,很多时候我们会写成ct.update(),这样会有问题!加了括号就是赋值结果,没加就是赋值整个函数!千差万别。

image

5、关闭网页debug模式。注意:这个地方挺重要的,很多时候如果不关闭,ws无法注入!

6、此时在本地双击编译好的文件win64-localhost.exe,启动服务。

image

7、之后在控制台注入ws,即将JsEnv.js文件中的内容全部复制粘贴到控制台即可(注意有时要放开断点)。

image

8、连接通信,在控制台输入命令var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=v&name=test");

9、随后继续输入命令:

1// 注册一个方法 第一个参数get_v为方法名, 2// 第二个参数为函数,resolve里面的值是想要的值(发送到服务器的) 3// param是可传参参数,可以忽略 4demo.regAction("get_v", function (resolve, param) { 5 // var c = "好困啊" + param; 6 var c = dcpeng(); 7 resolve(c); 8}) 9

image

10、之后就可以在浏览器中访问数据了,打开网址 http://127.0.0.1:12080/go?group={}&name={}&action={}¶m={} ,这是调用的接口 group和name填写上面注入时候的,action是注册的方法名,param是可选的参数,这里续用上面的例子,网页就是:http://127.0.0.1:12080/go?group=v&name=test&action=get_v

image

11、如上图所示,我们看到了那个变化的参数v的值,直接通过requests库可以发起get请求。

12、现在我们就可以模拟数据,进行请求发送了。

image

13、将拷贝的内容可以丢到这里进行粘贴:http://tool.yuanrenxue.com/curl

image

14、之后将右侧的代码复制到Pycharm中即可用,非常便利。

15、之后就可以构造请求了,整体代码如下所示。

1import requests 2 3v_url = "http://127.0.0.1:12080/go?group=v&name=test&action=get_v" 4v_res = requests.get(url=v_url).json()["get_v"] 5 6cookies = { 7 'session': '6c78df1c-37aa-4574-bb50-99784ffb3697.Qcl0XN6livMeZ-7tbiNe-Ogn8L4', 8 'v': v_res, 9} 10 11headers = { 12 'Connection': 'keep-alive', 13 'Accept': 'application/json, text/javascript, */*; q=0.01', 14 'X-Requested-With': 'XMLHttpRequest', 15 'hexin-v': 'A3_4zkkuI7xygCZatjHGiHM8DlgKZNPp7bnX-hFMGsZ175EOGTRjVv2IZ04i', 16 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69', 17 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 18 'Origin': 'http://spider.wangluozhe.com', 19 'Referer': 'http://spider.wangluozhe.com/challenge/6', 20 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', 21} 22 23data = { 24 'page': '3', 25 'count': '10' 26} 27 28response = requests.post('http://spider.wangluozhe.com/challenge/api/6', headers=headers, cookies=cookies, data=data, verify=False).json() 29 30print(response) 31

image

运行结果如上图所示,和网页上呈现的数据一模一样。

image

16、至此,请求就已经完美的完成了,如果想获取全部网页,构造一个range循环翻页即可实现。

17、也欢迎大家挑战该题目,我已经挑战成功了,等你来战!

image

总结

大家好,我是皮皮。这篇文章主要给大家介绍了jsrpc的实战教程,使用jsrpc工具可以在网络爬虫过程中事半功倍,无需仔细的去扣环境,去一步步逆向,只一个黑盒的模式,我们就拿到了想要的结果,屡试不爽。

初次接触jsrpc的小伙伴可能看不懂,这里还有黑哥录制的一个视频,大家可以对照视频进行学习,地址:https://www.bilibili.com/video/BV1EQ4y1z7GS,黑哥全程无声演示,视频的BGM很大,建议大家可以静音播放,领会其中奥义。

关于jsrpc工具,可以点击原文前往获取。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

Jsrpc学习——加密参数Sign变化的网站破解教程

大家好,我是皮皮。前几天给大家分享jsrpc的介绍篇,Python网络爬虫之js逆向之远程调用(rpc)免去抠代码补环境简介,还有实战篇,Jsrpc学习——网易云热评加密函数逆向,Jsrpc学习——Cookie变化的网站破解教程感兴趣的小伙伴可以戳此文前往。今天给大家来个jsrpc实战教程,让大家加深对jsrpc的理解和认识。下面是具体操作过程,不懂的小伙伴

Jsrpc学习——网易云热评加密函数逆向

大家好,我是皮皮。前几天给大家分享jsrpc的介绍篇,Python网络爬虫之js逆向之远程调用(rpc)免去抠代码补环境简介,感兴趣的小伙伴可以戳此文前往。今天给大家来个jsrpc实战教程,Jsrpc学习——Cookie变化的网站破解教程,让大家继续加深对jsrpc的理解和认识。下面是具体操作过程,不懂的小伙伴可以私我。1、因为网易云音乐热评的加密并不在co