jrtt 某头条网页版 _signature参数逆向

18 篇文章 3 订阅
4 篇文章 1 订阅
本文仅供参考学习,如有侵权可联系本人
  • 目标网站
'aHR0cHM6Ly93d3cudG91dGlhby5jb20vYy91c2VyL3Rva2VuL01TNHdMakFCQUFBQWE0alpUdzhvRlZnaUJIREprMTA1NDdBVFBUb050aHlsVDRqWndZMmlrMXcvPw=='
  • 接口分析
    token:需要采集用户
    _signature:加密参数
    aid:固定值
  1. 全局搜**_signature**
    在这里插入图片描述

在这里插入图片描述

  1. 给他们都刷上断点,然后往下翻页。相当于A(F.getUri(e), e) A函数传入两个参数,参数1:url连接,e参数
    在这里插入图片描述

  2. 单步调试,进入A看,a.call(n, o)就是生成_signature,a又是n.sign,n又是n = window.byted_acrawler。所以相当于a.call(n,o)等于window.byted_acrawler.sign(n,o)
    在这里插入图片描述
    验证猜想
    在这里插入图片描述

  3. 鼠标放在n.sign()就可以跳转到加密函数,其实跟旧版很想,那就是全扣。

  • 补环境
  1. 接下来补环境,运行报错,还是通过jsdom来补环境
    在这里插入图片描述
  2. referrer 去控制台输出将其补上
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
var document = dom.window.document;
var window = dom.window
document.referrer = "https:xxxx"
  1. 接着报错sign未定义,是因为检测了环境。
    在这里插入图片描述

解决方案:
将这部分三目表达式删除只剩下返回后半部分void 0
在这里插入图片描述
4. 报错url未定义
在这里插入图片描述
是因为入参url未给导致的,也就是这个o值可以copy下来作为参数传入
在这里插入图片描述解决方法:

在这里插入图片描述
5. 接着报错href未定义,这个印象中时location.href参数,给他补上。
在这里插入图片描述

解决方案:
在这里插入图片描述

const dom = new JSDOM("<!DOCTYPE html><p>Hello world</p>", {url: 'https://www.xxxx.com/c/user/token/MS4wLjABAAAAa4xxxxxxxHDJk10547ATPToNthylT4jZwY2ik1w/?'});
var location = dom.window.location;
  1. 接着报错userAgent未定义,userAgent是在navigator里面的。
    在这里插入图片描述
    解决方法:
    感觉这样补出来的userAgent不对劲啊。
navigator = dom.window.navigator;
console.log(navigator.userAgent)

结果确实有问题,这样补没补成功最后这样补了
在这里插入图片描述

var navigator = {"userAgent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"}
  1. 能出结果了,但是比真正的cookie短好多,应该跟上个版本的cookie校验有关。但是拿去请求时没有任何问题的,请求能得出数据。
    在这里插入图片描述
  2. 看看能不能把cookie补上吧
    以为很简单的补,发现这样补没有用只能识别出来第一个参数,那就是得将cookie转成字典的格式补进去?
    在这里插入图片描述
    那这种情况只能set进去了
function setCookie(name, value, seconds) {
    seconds = seconds || 0;
    var expires = "";
    if (seconds != 0 ) {
    expires = "; expires=" + (new Date((new Date).getTime() + 18E5)).toGMTString() + "; path=/;";
    }
    document.cookie = name + "=" + escape(value) + expires + "; path=/";
}
cookies = "local_city_cache=%E5%B9%BF%E5%B7%9E; csrftoken=d8b941ec37444f514ab96f21a9eab6cf; s_v_web_id=verify_lc67xuhs_Zht3GbQO_HP48_4LjT_9Hrw_hHrZ3jXS7Dim; _S_DPR=1.3020833730697632; _S_IPAD=0; _S_WIN_WH=1475_210; tt_scid=K-cTexY6TZkA5KaVyM4v7PA95e40zp5iileozA48EBK-pvNDkL5MTE44akBnrw845c07"


for(let cookie of cookies.split(";")) {
    tmp = cookie.split("=");
    setCookie(tmp[0], tmp[1], 1800);
}

执行之后发现cookie长度跟浏览器生成的一样而且cookie也设置进去了
在这里插入图片描述

  • 总结
  1. 缺啥补啥
  2. 不懂可以联系博主
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值