某某Meta登录逆向

查看 27|回复 1
作者:Ceciliana   

aHR0cHM6Ly9tLnNoZW5ncWluZ3F5LmNuLyMvbG9naW4=

抓包
固定 phone= 12333333333,password= 123456
请求 /login 接口,携带动态参数 timestamp、nonce 和 sign,响应 {"code":500,...}
跟栈寻参


img1.png (257.94 KB, 下载次数: 0)
下载附件
2025-10-12 21:42 上传



img2.png (157.01 KB, 下载次数: 0)
下载附件
2025-10-12 21:42 上传



img3.png (153.36 KB, 下载次数: 0)
下载附件
2025-10-12 21:42 上传



img4.png (153.29 KB, 下载次数: 0)
下载附件
2025-10-12 21:42 上传

let u = {
    "username": 12333333333,
    "password": "123456",
    "areaCode": "+86",
    "inviteId": "",
    "deviceType": 0,
    "captchaTicket": "",
    "captchaRandstr": "",
    "sign_appid": "h5_23514861"
};
u["timestamp"] = parseInt((new Date)["getTime"]() / 1e3);
u["nonce"] = "" + y(5) + Math["floor"](1e7 * Math["random"]()) + y(5);
let t = '看你麻痹看';   // 此值确认固定
let p = g(u, t);
u["sign"] = p["toLowerCase"]();
console.log(JSON.stringify(u));
扣代码
试执行,首先是 y is not defined


img5.png (141.07 KB, 下载次数: 0)
下载附件
2025-10-12 21:44 上传

扣下,然后 k is not defined


img6.png (52.13 KB, 下载次数: 0)
下载附件
2025-10-12 21:44 上传

扣下,然后 d is not defined


img7.png (50.79 KB, 下载次数: 0)
下载附件
2025-10-12 21:45 上传

看到一个大数组要警觉,很大概率后面会有一个自执行函数(IIFE)对这个大数组做重排处理,大数组 + 自执行重排,是常见的混淆手段
d 连带着自执行一并扣下,然后 g is not defined


img8.png (72.89 KB, 下载次数: 0)
下载附件
2025-10-12 21:46 上传

扣下,然后 l is not defined,而 l 于开头定义


img9.png (45.12 KB, 下载次数: 0)
下载附件
2025-10-12 21:46 上传

n("xxxx") 形式,那必是 webpack 了,刷新网页断住,跟进 n


img10.png (65.21 KB, 下载次数: 0)
下载附件
2025-10-12 21:46 上传

文件内是一整个自执行,全扣下
在加载器 l 里插个桩并导出为 myLoader,并把整个 webpack 内初始化的执行注释掉
function l(t) {
    console.log(t); // 插桩,打印加载的模块
    if (a[t])
        return a[t].exports;
    var n = a[t] = {
        i: t,
        l: !1,
        exports: {}
    };
    return e[t].call(n.exports, n, n.exports, l),
    n.l = !0,
    n.exports
}


img11.png (67.7 KB, 下载次数: 0)
下载附件
2025-10-12 21:48 上传

执行,桩日志加载 8237,Cannot read properties of undefined (reading 'call'),说明缺了,全局搜,补上


img12.png (86.53 KB, 下载次数: 0)
下载附件
2025-10-12 21:48 上传

此文件头语句为 (window["webpackJsonp"] = window["webpackJsonp"] || []).push([["chunk-vendors"], {...}]),与主 webpack 的绑定语句 var s = window["webpackJsonp"] = window["webpackJsonp"] || [] 相对应
因为不知道还会加载哪些模块,直接全扣


img13.png (77.91 KB, 下载次数: 0)
下载附件
2025-10-12 21:49 上传

成功出值
完整的程序结构如下,细节请自己扣喔
window = globalThis;
var myLoader;
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["chunk-vendors"], {...}]);
(function(e) {...})({...});
var i = myLoader("8237");
var l = myLoader.n(i);
function d() {...}
(function (e, t) {...})(d, 185391);
const g = (e, t) => {...};
function k(e, t) {...};
const y = (e, t) => {...};
let u = {
    "username": 12333333333,
    "password": "123456",
    "areaCode": "+86",
    "inviteId": "",
    "deviceType": 0,
    "captchaTicket": "",
    "captchaRandstr": "",
    "sign_appid": "h5_23514861"
};
u["timestamp"] = parseInt((new Date)["getTime"]() / 1e3);
u["nonce"] = "" + y(5) + Math["floor"](1e7 * Math["random"]()) + y(5);
let t = '看你麻痹看';
let p = g(u, t);
u["sign"] = p["toLowerCase"]();
console.log(JSON.stringify(u));
Tip
真坏啊,6万多行代码竟只加载了4个模块,可以手动把其他模块的加载删掉,减小代码体积

下载次数, 下载附件

chenyong123456   

好几个台子都是用这套加密,里面都有看你麻痹看
您需要登录后才可以回帖 登录 | 立即注册

返回顶部