当前位置: 首页 > 科技观察

jsrpc学习——某加密参数改号的网站hook教程

时间:2023-03-15 18:18:02 科技观察

大家好,我是皮皮。1、这里使用的网站是fec2bc913be604a5162540c03d45532c,MD5加密。2、首页相关信息需要抓取,如下图所示。3、打开浏览器抓包,然后断点调试,点击右侧CallStack中的项,找到加密函数,里面的值对应请求参数即可确定。仔细查找后,发现加密函数就在这里。下图直接使用了十一姐的图片,十一姐文章原文链接:https://blog.csdn.net/weixin_43411585/article/details/1230309734,然后在控制台输入命令window.dcpeng=window即可.byted_acrawler.sign,其中window.byted_acrawler.sign是一个加密函数。注意:这个地方很重要。很多时候我们会写ct.update(),这样会出问题!加括号就是赋值结果,不加就是对整个函数的赋值!它变化很大。5.关闭网页调试模式。注意:这个地方很重要。很多情况下,不关闭是无法注入ws的!6、此时在本地双击编译好的文件win64-localhost.exe启动服务。7、之后,在控制台中注入ws,即将JsEnv.js文件中的所有内容复制粘贴到控制台中(注意有时候需要解除断点)。8.要连接到通信,输入命令vardemo=newHlclient("ws://127.0.0.1:12080/ws?group=para&name=test");9.然后继续输入命令://注册一个方法一个参数get_v是方法名,//第二个参数是函数,resolve中的值是想要的值(发送到服务器)//param是一个可以传递的参数,可以忽略demo.regAction("get_para",function(resolve,param){console.log(param);varres=dcpeng(param,{"url":"https://www.toutiao.com/?wid=1641423780855"});resolve(res);})这个地方记得传参,不然拿不到数据。(这里查了很久)10、之后就可以在浏览器访问数据了,打开网址http://127.0.0.1:12080/go?group={}&name={}&action={}¶m={},这个是上面注入时填写的调用接口组和名称,action是注册的方法名,param是可选参数,这里继续上面的例子,网页是:http://127.0.0.1:12080/go?group=para&name=test&action=get_para11.如上图所示,我们看到参数v的值发生了变化,我们可以直接通过requests库发起get请求。12.现在我们可以模拟数据并发送请求了。13、可以把复制的内容丢在这里粘贴:http://tool.yuanrenxue.com/curl14。之后将右边的代码复制到Pycharm中使用即可,非常方便。15、之后就可以构造request了,加上一个完整的循环,就可以拿到页面的内容了。整体代码如下。#coding:utf-8#@Time:2022/5/1016:30#@Author:Pipi#@公众号:Python分享之家#@website:http://pdcfighting.com/#@File:headerjsrpc.py#@Software:PyCharmportrequestsimportjsonimporturllib.parseimporttimeparam_url="http://127.0.0.1:12080/go?group=para&name=test&action=get_para"response=requests.get(url=param_url).textresponse_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,"类别":"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"])运行结果如下图所示,与上呈现的数据完全一致网页。16、至此,请求已经完美完成。如果想得到所有的网页,可以构造一个范围循环来翻页。小伙伴们赶紧练起来吧!如果你在学习过程中遇到什么问题,欢迎加我为好友,我会拉你进Python学习交流群一起讨论学习。