首页
社区
课程
招聘
【JS逆向】某条signature逆向补环境
发表于: 2025-7-21 20:48 3223

【JS逆向】某条signature逆向补环境

2025-7-21 20:48
3223

本文中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关.本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责

站点:aHR0cHM6Ly9zby50b3V0aWFvLmNvbS9zZWFyY2g/ZHZwZj1wYyZzb3VyY2U9dHJlbmRpbmdfY2FyZCZrZXl3b3JkPSVFNyVCRSU4RSVFNSU5QiVCRCVFNiVCNCU5QiVFNiU5RCU4OSVFNyU5RiVCNiVFNCVCOCU4MCVFOCVCRCVBNiVFOCVCRSU4NiVFNSU4NiVCMiVFNiU5MiU5RSVFNCVCQSVCQSVFNyVCRSVBNA==

视频:视频教程

先访问站点,发现有2次请求,且第一次请求的响应内容空白。第1次请求后紧接的第2次请求就是渲染的页面。可见第1次请求必然做了什么事情,这也是典型的动态cookie场景。
在这里插入图片描述

观察第1次请求的响应头:有一些setcookie等字段
在这里插入图片描述

再看看第2次请求成功:
url、参数并没有区别,只不过带了个cookie,其中__ac_nonce来自于第1次请求返回,而多的这个__ac_signature就要处理了。
在这里插入图片描述

此时利用postman发一次包看第1次请求响应内容究竟是什么:
在这里插入图片描述
是一大段JS,拿出来看:显然是个jsvmp,且能找到生成的函数是:

:
__ac_nonce已经可以从第1次请求拿到,接下来就看怎么让这个调用能够完成。

由于是个大jsvmp,简单做法直接补环境处理。
先尝试运行代码看看:报错防盗链。。。
在这里插入图片描述

那常规操作,先补几个基础dom对象,再祭出Proxy直接挂!

提一嘴,watch方法来自于B站up主:无名的Coder,主页:up主页

运行打印看看:

行,那就全补上

再来试试:只剩这个关键函数,提示undefined
在这里插入图片描述
回头看看那个vmp,其中有一些检测点:
在这里插入图片描述

在node环境下,这个表达式包返回Object,但是浏览器环境并没有exports,结果是undefined。所以必须让这个表达式的结果也是undefined,这样修改下再运行:

在这里插入图片描述

直接出值,成功!
并且长度也没问题,代入请求中去测试能通过。

目前这个值请求通搜索接口没问题,不过有些场景的话,这个长度还不够,例如评论接口:
在这里插入图片描述
实际长度有147,但搜索接口补完出的值仅有47。所以补的环境不够,还差一部分。

这个就留给大伙自己补来看看哈哈

入门补环境,大佬请忽略

__ac_signature=window.byted_acrawler.sign("",__ac_nonce);
__ac_signature=window.byted_acrawler.sign("",__ac_nonce);
function watch(obj, name) {
    return new Proxy(obj,{
        get: function(target, property, receiver) {
            try {
                if (typeof target[property] === "function") {
                    console.table([`对象 => ${name} ,读取属性:`, property + `,值为:` + 'function' + `,类型为:` + (typeof target[property])]);
                } else {
                    console.table([`对象 => ${name} ,读取属性:`, property + `,值为:` + target[property] + `,类型为:` + (typeof target[property])]);
                }
            } catch (e) {}
            return target[property];
        },
        set: function(target, property, newValue, receiver) {
            try {
                console.table([`对象 => ${name} ,设置属性:`, property + `,值为:` + newValue + `,类型为:` + (typeof newValue)]);
            } catch (e) {}
            return Reflect.set(target, property, newValue, receiver);
        }
    });
}
 
window = global;
 
document= {
};
location= {
};
navigator= {
};
 
window = watch(window, "window");
location = watch(location, "location");
document = watch(document, "document");
navigator = watch(navigator, "navigator");
 
require("./bdm.js")
 
var sign = window.byted_acrawler.sign("","123");
console.log(sign);
function watch(obj, name) {
    return new Proxy(obj,{
        get: function(target, property, receiver) {
            try {
                if (typeof target[property] === "function") {
                    console.table([`对象 => ${name} ,读取属性:`, property + `,值为:` + 'function' + `,类型为:` + (typeof target[property])]);
                } else {
                    console.table([`对象 => ${name} ,读取属性:`, property + `,值为:` + target[property] + `,类型为:` + (typeof target[property])]);
                }
            } catch (e) {}
            return target[property];
        },
        set: function(target, property, newValue, receiver) {
            try {
                console.table([`对象 => ${name} ,设置属性:`, property + `,值为:` + newValue + `,类型为:` + (typeof newValue)]);
            } catch (e) {}
            return Reflect.set(target, property, newValue, receiver);
        }
    });
}
 
window = global;
 
document= {
};
location= {
};
navigator= {

[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 26
支持
分享
最新回复 (15)
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
666
2025-7-25 17:42
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
666
2025-9-1 14:40
0
雪    币: 219
活跃值: (166)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
优秀
2025-9-1 15:22
0
雪    币: 189
活跃值: (1236)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
666
2025-11-6 10:56
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
大佬,招资深JS逆向,愿意聊聊吗
2025-11-24 18:31
0
雪    币: 3975
活跃值: (4430)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
6
2025-11-24 19:21
0
雪    币: 6294
活跃值: (6085)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
66
2025-11-24 19:44
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
学习
2025-12-31 17:16
0
雪    币: 2324
活跃值: (415)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
666
2025-12-31 22:07
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
66
2026-1-3 15:35
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
666
2026-1-3 16:39
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
111
2026-1-4 11:42
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
111
2026-1-21 18:03
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
666
5天前
0
雪    币: 234
活跃值: (385)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
6666
4天前
0
游客
登录 | 注册 方可回帖
返回