js逆向) 某音cookie中的__ac_signature

news/2024/10/1 1:24:32

原文链接:https://mp.weixin.qq.com/s/NJjU7dqA1g0-_xFmr1nrIg

前言

上一篇文章测试了多个补环境的框架(多个开源的js补环境框架测试),这篇来说一下具体怎么补。用__ac_signature做测试,这个相对简单一点。

逆向

先定位cookie生成的位置,清空cookie然后刷新网页,可以看到有两次请求。第一次返回了一个__ac_nonce的cookie,未携带__ac_signature。第二次就已经带上了这个cookie,那肯定是之前请求里的js加上的。

看了下中间的几个请求都不是js,只有可能是在第一次请求返回的内容,不过谷歌浏览器看不到响应内容,只能用抓包工具或者火狐看。

html里面有两个script标签,第一个里面就是核心的js,第二个script里是调用和复制cookie。里面有用的就两行

window.byted_acrawler.init({aid: 99999999,dfp: 0
});
var __ac_signature = window.byted_acrawler.sign("", __ac_nonce);

而第一段js代码里就是在定义window.byted_acrawler,不需要去分析里面做了,直接拿出来整个补环境。

补环境框架

node-sandbox

先测试下node-sandbox。这里再复述一下使用方法,先把源码下载到本地。解压node.zip到当前目录,在main.js里增加下面的代码:

function test_vm() {const sandbox = {wanfeng: wanfeng,globalMy: globalMy,console: console,}let workCode = fs.readFileSync("./work/ac_sign.js");a = +new Date;var callCode = `window.byted_acrawler.init({aid: 99999999,dfp: 0});var __ac_nonce = "06639eaa4009ab37b9a75";var __ac_signature = window.byted_acrawler.sign("",__ac_nonce);console.log("__ac_signature: ", __ac_signature)`;var code = "debugger;\r\n" + globalMy_js + init_env + envCode + "\r\n" + workCode + "\r\n" + endCode + callCode;vm.runInNewContext(code, sandbox);console.log("运行环境Js + 工作Js 耗时:", +new Date - a, "毫秒");
}
test_vm();

然后把js放到./work/ac_sign.js里,在终端输入.\node main.js就会吐出所有的环境,结果也输出出来了

qxVm

qxVm用起来也是类似,改一下js文件名和userAgent、href等,完整代码如下:

const fs = require('fs');
const QXVM_GENERATE = require('../qxVm_sanbox/qxVm.sanbox');function ReadCode(name, dir) {let file_path = dir === undefined ? `${__dirname}/${name}` : `${__dirname}/${dir}/${name}`;return fs.readFileSync(file_path) + "\r\n"
}const js_code = ReadCode(`./ac_sign.js`);const user_config = {isTest: false,runConfig: { proxy: true, logOpen: true},window_attribute: {},env: {navigator: {userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"},location: {href: "打码处理"},document: {referrer: "打码处理",cookie: ''}}
}
// 帮助信息打印
// QXVM_GENERATE.help()let result = QXVM_GENERATE.sanbox(js_code, "get_ac_sign", user_config, false);
let ac_sign = result.get_ac_sign("0663c24340045271d4894")
console.log("__ac_signature:", ac_sign)

验证有效性

能生成结果肯定是不够,还得能出数据才行。看了一下,发现cookie中的__ac_signature其实是可有可无的。如果你直接修改cookie来验证的话,也是能返回内容的。

__ac_signature的实际作用是为了得到ttwid,如果__ac_signature有效,第二次请求就会在响应头加一个set-cookie设置ttwid的值,这个值才是后面需要用到的cookie值。

所以在charles修改第二次请求的__ac_signature,看看服务器返回的有没有set-cookie。如果没有的话,说明触发风控了(验证码),可能是__ac_signature无效,也可能是请求太多次了。

失败的请求:

成功的情况:

测试了下上面两个框架生成的__ac_signature都可以得到ttwid,也就是说环境都是通过了网站的检测。

补环境

既然都把环境吐出来,我还想手动补一下环境,补完发现压根通不过验证,检测的东西太多了。即使环境都补对了而且能在vm2里运行,在node和chakracore里的结果也通不过检测。

还是直接站在巨人的肩膀上开个服务调用吧,这样可以不用折腾那么多事。

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29704.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Outrageously Large Neural Networks The Sparsely-Gated Mixture-of-Experts Layer

目录概MoE训练Shazeer N., Mirhoseini A., Maziarz K., Davis A., Le Q., Hinton G. and Dean J. Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. ICLR, 2017.概 Mixture-of-Experts (MoE). MoE通过一 gating network 选择不同的 expert: …

PV-PVC

PV & PVC https://blog.csdn.net/bdkl9998/article/details/106304255PersistentVolume(PV) 是由管理员设置的存储,是集群的一部分,它不属于任何命名空间 PV的生命周期独立于使用它的pod的生命周期 PV更像是一种储备资源,先创建,有PVC需要它时才会被使用 PV可以是多种类…

emptyDir-gitRepo

emptyDir & gitRepo k8s存储类型分类(卷的类型) 临时存储 emptyDir 用于存储临时数据的简单空目录 gitRepo 通过检出Git仓库的内容来初始化的卷持久存储 hostPath 用于将目录从工作节点的文件系统挂载到pod中 nfs …

中间件集群部署

中间件集群部署中间件集群部署 1)反向网关配置 2)运行反向网关和中间件,开启顺序不分先后3)通过反向网关,以指定负载均衡方式访问中间件 本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/18183673

自定义表单工作流的优势介绍

今天,就跟大家一起分享低代码技术平台以及自定义表单工作流的相关知识。当前,应用低代码技术平台可以助力企业提高效率,降低开发成本,实现个性化场景定制,因而越来越得到了客户的信赖与喜爱。很多客户朋友询问自定义表单工作流的优势和特点,为了帮助大家解决这个疑问,今…

746-便携式8路高频电压电流信号测试仪

便携式8路高频电压电流信号测试仪一、平台简介便携式手提8路高频电压电流信号测试仪,以FPGA AD卡和X86主板为基础,构建便携式的手提设备。FPGA AD卡是以Kintex-7XC7K325T PCIeX4的AD卡,支持8路24bit AD采集。北京太速科技,平台默认操作系统为win7 64位系统;具备丰富的外设…

黑马-Vue前端

前言 HTML:负责网页的结构(标签:form表单 / table表格 / a /div/span) CSS:负责网页的表现(样式:color/font/background/width/height) JavaScript:负责网页的行为(交互效果) 创建一个文件夹 输入cmd执行 code . 回车,打开VsCodeVue 一款用于构建用户界面的渐进式…

httpsok-v1.11.0支持CDN证书自动部署

🔥httpsok-v1.11.0支持CDN证书自动部署 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业,稳定、安全、可靠。 一行命令,一分钟轻松搞定SSL证书自动续期 v1.11.0 版本新特性✅修复某些情况下无法识别主配置文件n…