吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10074|回复: 41
收起左侧

[Python 转载] js逆向:某瓜_signature、__ac_signature参数分析

  [复制链接]
xmy00000 发表于 2020-10-30 14:11

2020-10-28更新

今天抓取西瓜的时候发现需要带cookie才能得到详情页的数据。熟悉的__ac_signature字段,熟悉的配方。应该是跟某条详情页一样。

正文开始

首先搜索参数出现的js文件
在这里插入图片描述
ctrl+f在js文件搜索_signature
在这里插入图片描述
可以看出_signature就是n,而j就是入口函数。跟进去
在这里插入图片描述
o是j函数的返回值,所以重点看1904行
改写一下
var o = window.byted_acrawler.sign(i)
我们需要在n.call(a,i)处打个断点跟进去
在这里插入图片描述
js文件不大,可以全部放进webstorm里。
在这里插入图片描述
简化一下
在这里插入图片描述
我们知道sign方法是window下的,所以我们打印一下是否有。
当然,此window不是浏览器中的window。node js中的window是global。
在这里插入图片描述

补环境

这个属性很熟悉。我们可以在调试的浏览器中找到。
我们一般可以window.document = {}或者
window.document = {referrer: "https://www.ixigua.com/"}
直接使用网站主页

在这里插入图片描述
可以看点window.BytedAcrawler下确实有sign方法
在这里插入图片描述
调用这个方式,然后接着补userAgent等。
在这里插入图片描述
可能碰到这个属性时都会有点懵逼
使用好哥哥教的插桩大法,其实就是打印值
在这里插入图片描述
这个可以看的更直观。
从而可以分析出z[S]为protocol时才能有length
在这里插入图片描述
这个太短!男人不能太短!
所以再找找别的原因。。

获取长_signature

当我们请求详情页的时候会返回一段代码,里面有一段js,很可疑。
在这里插入图片描述
在这里插入图片描述
格式化之后看的更清晰。
可以看出f3函数时设置cookie

var ac_nonce = _f2("ac_nonce");
ac_signature = window.byted_acrawler.sign("", ac_nonce);
这个就是__ac_signature 的来源。后面再说

改写一下f3函数,然后复制浏览器中的cookie
在这里插入图片描述
这样就能拿到想要的长_signature。。。

__ac_signature 获取

ac_signature = window.byted_acrawler.sign("", ac_nonce);
我们想要ac_signature 就需要先拿到__ac_nonce。
我们先请求详情页,会返回
ac_nonce
在这里插入图片描述
拿到ac_nonce之后调用window.byted_acrawler.sign("", ac_nonce)
我们就可以得到__ac_signature 的值了
在这里插入图片描述
最后想要的数据拿到啦。。。。

免费评分

参与人数 9吾爱币 +18 热心值 +7 收起 理由
zhusg + 1 我很赞同!
devepeng + 1 + 1 我很赞同!
#sky# + 1 + 1 我很赞同!
放手一搏09 + 1 用心讨论,共获提升!
andrew_a + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
troublesun + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 10 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
朮小凯 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xiaomayi2012 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

acm79 发表于 2020-11-9 18:40
本帖最后由 acm79 于 2020-11-9 18:42 编辑

基本按照教程方式处理,node 执行 js 输出 window 对象
<ref *1> Object [global] {
  global: [Circular *1],
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  setInterval: [Function: setInterval],
  setTimeout: [Function: setTimeout] {
    [Symbol(nodejs.util.promisify.custom)]: [Function (anonymous)]
  },
  queueMicrotask: [Function: queueMicrotask],
  clearImmediate: [Function: clearImmediate],
  setImmediate: [Function: setImmediate] {
    [Symbol(nodejs.util.promisify.custom)]: [Function (anonymous)]
  },
  navigator: {
    userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
    acceptEncoding: 'gzip, deflate, br',
    acceptLanguage: 'zh-CN,zh;q=0.9'
  },
  document: {
    referrer: 'https://www.ixigua.com/',
    cookie: '__ac_referer=; expires=Mon, 20 Sep 2010 00:00:00 UTC; path=/;'
  },
  location: { href: 'https://www.ixigua.com/', protocol: 'https:' },
  '_$jsvmprt': [Function: _$jsvmprt],
  __ac_referer: 'https://www.ixigua.com/'
}

不存在byted_acrawler,感觉很困惑,难道几天时间 js 就又修改了么
troublesun 发表于 2020-11-12 00:39
acm79 发表于 2020-11-9 18:40
基本按照教程方式处理,node 执行 js 输出 window 对象
Object [global] {
  global: [Circular *1],

第二个参数 [, , "undefined" != typeof exports ? exports : void 0, "undefined" != typeof module ? module : void 0]改写成[, ,void 0,void 0]后面的就有了
cl19980429 发表于 2020-10-30 15:12
uav 发表于 2020-11-1 23:07
小白先学习一下
国土无双 发表于 2020-11-2 10:03
小白学习了
balabalappp 发表于 2020-11-2 10:17
小白 学习一下
Rezalt 发表于 2020-11-2 16:37
大佬, 为什么我这边访问西瓜同样的抓signature,我这边js直接显示的就是 window.byted_acrawler.sign(t) 而不是像你一样的是一个var j = n(a, e)。抠出来相同的js文件我执行了之后window属性里面并没有byted_acrawler呀,求大佬指点迷津
 楼主| xmy00000 发表于 2020-11-2 17:19
本帖最后由 xmy00000 于 2020-11-2 17:31 编辑
Rezalt 发表于 2020-11-2 16:37
大佬, 为什么我这边访问西瓜同样的抓signature,我这边js直接显示的就是 window.byted_acrawler.sign(t) 而 ...

文中是某条,西瓜也是一样的。

打印window时没有看到BytedAcrawler的话,可能是你没有简化代码。你可以直接执行window.byted_acrawler.sign(t)。看看缺什么环境。如果不行你可以私我,我把代码发你
1.png
2.png
Rezalt 发表于 2020-11-3 16:02
xmy00000 发表于 2020-11-2 17:19
文中是某条,西瓜也是一样的。

打印window时没有看到BytedAcrawler的话,可能是你没有简化代码。你可 ...

感谢大佬 经过仔细比对发现了自己的问题并顺利解决了
技术小星 发表于 2020-11-3 22:44
大佬,那个发不了消息了,那个一定要¥这个吗?平时也不怎么用q,也没绑定银行卡啥的 CB可以吗?
技术小星 发表于 2020-11-4 10:55
聊天发不了,大佬链接在这里https://www.52pojie.cn/thread-1296683-1-1.html
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 06:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表