js逆向) 某音cookie中的__ac_signature

原文链接: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里的结果也通不过检测。

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容