吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 991|回复: 13
收起左侧

[其他求助] 【逆向】OB混淆cookie生成问题

[复制链接]
hybpjx 发表于 2024-2-5 15:43
70吾爱币

目标网站

aHR0cHM6Ly9xaXllLm9iZWkuY29tLmNuL3dlYi16b25lL2J3enkvcHJvY3VyZW1lbnQuaHRtbA==

分析

页面刷新有两个请求。
请求需要携带三个cookie才能请求到数据。

  1. csrfToken
  2. HKIIUU9O618PPTHKM ———————— 短cookie
  3. HKIIUU9O618PPTHPM ———————— 长cookie

先一个一个分析

csrfToken

这个值是定死的。需要写死并且要会话保持才能一直请求。
值得注意的是headers中有个值x-csrf-token 这个值 要和cookie中的csrfToken绑定。

HKIIUU9O618PPTHKM

短cookie获取的方式很简单。不牵扯到逆向。
这里分成以下四个步骤:

  1. 获取主页 ——————> 正则提取 script 的外链JS
  2. 补全刚刚获取的外链JS ——————> 请求
  3. 拿到刚刚请求好的源码再次写一个正则获取另一个外链的JS
  4. 请求刚刚再次获取到的JS。拿到set_cookie。

值得注意的是这里有两个cookie 好就是HKIIUU9O618PPTHKM 和 HKIIUU9O618PPTHPM。
这两个Cookie就是获取倒的cookie
然而 事实是你直接请求。是请求不到的。
会抛出来一个页面。显示403无权访问。

HKIIUU9O618PPTHPM

这个长cookie的获取方式。其实就是上文所说的第三步的那个JS。
这个JS是一个OB混淆。
本文生成cookie的函数为_$j2()

function _$j2() {
    var _0x4d67a0 = _$Ir(48);
    _0x4d67a0 = _$Hj1["call"](_0x4d67a0["substr"](13), "");
    var _0xbea349 = Math.floor(new Date()["getTime"]() / 1000);
    _0xbea349 = _$Hj1["call"](_0xbea349["toString"](), "");
    var _0x267f92 = _$Vm();
    var _0x40e786 = _$v7(_0x267f92[0], _0x267f92[1], _0x267f92[2], _0x267f92[3], reguLiu, "yes", "yes", asourceWP, "");
    for (var _0x3da7dc = 0; _0x3da7dc < timeArr["length"]; _0x3da7dc++) {
        _0x4d67a0[timeArr[_0x3da7dc]] = _0xbea349[_0x3da7dc];
    }
    var _0x310b05 = _$Ir(18);

    _$rad = _0x310b05["substr"](13);

    var _0x37628e = xazxBase64["decode"](_0x40e786);

    _0x37628e = _0x37628e["substr"](0, _0x37628e["length"] - 1);
    _0x37628e += ",\"post_md5\":\"" + _$rad + "\"}";

    _0x4d67a0 = xazxBase64["encode"](_0x4d67a0["join"]("") + _0x37628e);
    var _0x6382ae = ["3", "7", "10", "12", "15", "18", "20", "23", "35", "40"];

    _0x4d67a0 = _$Cc(_0x4d67a0, _0x6382ae);
    return _0x4d67a0;
}

简单分析一下生成原理。

  1. $Ir(48) 生成一个48位的随机字符串 开头是时间戳 下文 $Ir(18)也一样。括号里填多少就生成多少位。
  2. 并将生成好的字符串(除时间戳)转换为一个一个的列表
  3. 生成一个时间戳并且转化成列表。
  4. 将两个列表利用浏览器的一些特性再次生成一个新的值
  5. 解码 并且加上一些特定字符串 从而将生成的那个列表值转换成字符串进而加密。
  6. 然后再次进行打乱生成 HKIIUU9O618PPTHPM。

中间要传入cookie才能生成cookie。但是加了之后还是不对。有没有大佬帮忙看看

最佳答案

查看完整内容

大概看了一下 主要是_$Qm这个函数 生成 我自己主要是去掉了一些检测运行相关的部分.但是具体代码里面的生成的 HKIIUU9O618PPTHPM和环境有关 所以单纯的生成的还是不行 需要把这些补全才可以 var _0x5e401c = _$L6(); var _0x7d6a2a = _$p8(_$Sw(_0x5e401c)); var _0x39bdcc = _$p8(new _$Qe()[_$Em()]()); var _0x2246b7 = _$Ir(_0x5e401c['length']); var _0x3b8935 = _$Z4(_0x2246b7, _0x39bdcc); ...

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

小明无敌 发表于 2024-2-5 15:43
本帖最后由 小明无敌 于 2024-2-6 03:45 编辑

大概看了一下 主要是_$Qm这个函数 生成
我自己主要是去掉了一些检测运行相关的部分.但是具体代码里面的生成的  HKIIUU9O618PPTHPM和环境有关 所以单纯的生成的还是不行 需要把这些补全才可以
QQ截图20240206033503.png
QQ截图20240206033612.png
var _0x5e401c = _$L6();
    var _0x7d6a2a = _$p8(_$Sw(_0x5e401c));
    var _0x39bdcc = _$p8(new _$Qe()[_$Em()]());
    var _0x2246b7 = _$Ir(_0x5e401c['length']);
    var _0x3b8935 = _$Z4(_0x2246b7, _0x39bdcc);
    var _0x37eb91 = returnCitySN == undefined ? '111.111.111.111' : returnCitySN['cip'];
    _0x3b8935 = _$Lx(_0x3b8935, _0x37eb91);
    _0x3b8935 = _$k6(_0x3b8935);
    var _0x40d02e = _$q2(_0x3b8935);
    var _0x588ca9 = _$Vm();
    var _0x49f130 = _$B1();
    var _0x58bed0 = _0x5afe35 == undefined ? 'yes' : 'no';
    var _0x6648 = _$v7(_0x588ca9[0x0], _0x588ca9[0x1], _0x588ca9[0x2], _0x588ca9[0x3], reguLiu, _0x58bed0, undefined, asourceWP, _0x49f130);
    if (_0x5afe35 == 'post') {
        _0x6648 = _$v7(_0x588ca9[0x0], _0x588ca9[0x1], _0x588ca9[0x2], _0x588ca9[0x3], reguLiu, 'yes', 'yes', asourceWP, _0x49f130);
    }
这几个都是在检测环境之类的 包括之前是否存有cookie 来判断生成的
感觉cookie应该是动态生成的 如果你直接扣这段js 自己屏蔽掉检测部分这样慢慢改生成的话 应该也可以 但是他后期更新 的话 就需要重新扣.但是如果直接 动态运行他这段js 然后动态注入自己环境的话 目前还没学会补环境 所以不太明白
包括像这个_$B1 函数 遍历navigator 的对象 这些都需要自己补 直接套浏览器的话 应该会检测 要改成动态的
QQ截图20240206034149.png
可惜自己没有补环境的框架  搞这些太头疼了
漁滒 发表于 2024-2-5 16:55
从发出的内容来看,大概率是最后一个cookie的计算出现了问题,被检测到了
 楼主| hybpjx 发表于 2024-2-5 17:02
漁滒 发表于 2024-2-5 16:55
从发出的内容来看,大概率是最后一个cookie的计算出现了问题,被检测到了

感谢渔歌大佬回复,主要那个ob我脱出来了。没有什么检测的地方
FitContent 发表于 2024-2-6 02:49

可能是定位的位置不对,我定的位置是 _$Qm() 函数,在翻页时触发且参数为 "post"

image-20240206020330196.png

 楼主| hybpjx 发表于 2024-2-6 13:33
FitContent 发表于 2024-2-6 02:49
[md]可能是定位的位置不对,我定的位置是 `_$Qm()` 函数,在翻页时触发且参数为 `"post"`。

好像是的
 楼主| hybpjx 发表于 2024-2-6 14:34
小明无敌 发表于 2024-2-6 03:42
大概看了一下 主要是_$Qm这个函数 生成
我自己主要是去掉了一些检测运行相关的部分.但是具体代码里面的生 ...

好的 。我有补环境框架,不知道是不是哪里写错了。补出来什么东西都没有了。可能不全
 楼主| hybpjx 发表于 2024-2-6 15:18
搞定了 有同学想知道的 可以在底下留言。
小明无敌 发表于 2024-2-6 16:20
hybpjx 发表于 2024-2-6 15:18
搞定了 有同学想知道的 可以在底下留言。

可以分享出来到论坛 大家一起学习
 楼主| hybpjx 发表于 2024-2-6 16:24
小明无敌 发表于 2024-2-6 16:20
可以分享出来到论坛 大家一起学习

环境写死。然后慢慢抠。那个环境没有关系。其他的和我上面写的差不多还有一些都是小坑。可以忽略
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-22 21:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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