开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1480|回复: 34
收起左侧

[技术专题] 急眼4 JS逆向图文教程 附带demo

[复制链接]
结帖率:100% (2/2)
发表于 2024-9-13 00:12:30 | 显示全部楼层 |阅读模式   广西壮族自治区贵港市
本帖最后由 ykq123654789 于 2024-9-13 01:04 编辑

1

1

1. 查看/load接口,发现了有个参数名为 "challenge"

2

2

3

3

4

4

2.根据栈跟踪 逐个尝试,看看有没有符合的地方(打算没有符合的地方,再搜索参数名的,既然发现了出处,那就足够了)
3. 发现是xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx 随机的 -4固定,/load接口的参数 算是解决了.(captcha_id risk_type lang这种参数 我就不叙述了 是验证码ID/验证码类型/语言标识,既然多次刷新不变,直接写死)

5

5

4.接着看/verify 这个接口 看见了 lot_number , payload , process_token , payload_protocol , pt , w . 这6个参数

6

6

5.其中 lot_number , payload , process_token , payload_protocol , pt .这5个参数 均由load接口返回. 核心那就是w

7

7

6.开始也是栈跟踪 慢慢查看,发现是混淆的,看不出有用价值,尝试直接搜索 POST表单参数试下,为了缩小搜索范围,根据栈跟踪显示,最大可能性是gcaptcha4.js这里,在这个js里面进行搜索

8

8

7.搜索 "payload_protocol",发现了2处地方,直接断下这2个,进行刷新,让他重新GET /verify接口

9

9

8.刷新后,断下来了,发现"i"的值格式很像/verify接口的"w"值,加上"'w': i",可以确定了 w=i,这里就是w的出处了.另外的断点可以删掉了.

10

10

9. 控制台取值
(0, m[$_BIBCQ(20)]) = function i(e, t) ,是一个函数
f[$_BIBDJ(20)][$_BIBCQ(544)](e) = '{"device_id":"","lot_number":"168dceae67e9481bb2561ea03ed6344e","pow_msg":"1|0|md5|2024-09-12T20:19:22.142688+08:00|24f56dc13c40dc4a02fd0318567caef5|168dceae67e9481bb2561ea03ed6344e||1181b3087d56bf15","pow_sign":"5e08e04743e9092b0de1572ffe2b7f44","geetest":"captcha","lang":"zh","ep":"123","biht":"1426265548","jvGu":"dDE5","em":{"ph":0,"cp":0,"ek":"f1","wd":1,"nt":0,"si":0,"sc":0}}'
n = 一个对象

那么  function i(e, t) 大概率就是执行加密的地方了. 老样子重新刷新 在var = i 处下断 跟入进去看看.

11

11

10. 进入到 function i(e, t) , 输出 "e ,t" 发现对上了,接着往下有点乱 ,但是看得出来是 循环 加上 条件语句,全部条件成立后第一句断点,看看是什么流程.

12

12

11. 发现了执行流程(如上图), 看见"_" 很可疑,也是十六进制文本.这个时候就细细的来了.

13

13

12. 控制台取值
(0, d[$_DAFCn(111)]) ()  = 生成一串十六进制文本 并且每次都不一样
$_DAFCn(917)  = "encrypt"
l[($_DAFDv(20))]  = function T()

14

14

13.控制台取值
e = '{"device_id":"","lot_number":"688cd123c1bc492ca67317fa43846f3f","pow_msg":"1|0|md5|2024-09-12T20:25:39.132851+08:00|24f56dc13c40dc4a02fd0318567caef5|688cd123c1bc492ca67317fa43846f3f||2b5da8f7c25e07bf","pow_sign":"acb6c2612bb42feab8f571090a03b3b3","geetest":"captcha","lang":"zh","ep":"123","biht":"1426265548","jvGu":"dDE5","em":{"ph":0,"cp":0,"ek":"f1","wd":1,"nt":0,"si":0,"sc":0}}'
n = "73ae4d5e019e5db1"
$_DAFDv(917)  = "encrypt"
r[a][$_DAFCn(905)]  = 一个对象

最终返回了 (0, d[$_DAFDv(158)]) (u) + _  
也就是"w"的值
捋一捋代码:
1. 生成一个随机十六进制 "n"
2.执行函数 传入"n"  得到"_"   >>    _ = r[a][$_DAFCn(956)][ "encrypt" ](n);
3.执行函数 传入"e,n"  得到"u"   >>    var u = r[a][$_DAFCn(905)][$_DAFDv(917)](e, n)
>>>>>
n=随机生成的
e是一个字符串

15

15

16

16

14.控制台取值
游客,如果您要查看本帖隐藏内容请回复


结帖率:100% (2/2)

签到天数: 3 天

 楼主| 发表于 2024-9-22 21:21:50 | 显示全部楼层   广西壮族自治区贵港市
本帖最后由 ykq123654789 于 2024-9-22 21:23 编辑

"biht":"1426265548",        //来源于 /v4/gct/gct*.js 里面的函数 _gct(t)
"jvGu":"dDE5",        //来源于 _lib

.e增加
        v8.RunJSCript (网页_访问_对象 (“http://static.geetest.com” + json.取通用属性 (“data.static_path”) + json.取通用属性 (“data.js”), 0), 假, 0, 0, )
        v8.RunJSCript (网页_访问_对象 (“http://static.geetest.com” + json.取通用属性 (“data.gct_path”), 0), 假, 0, 0, )
        .如果真 (v8.RunJSCript (“typeof _lib == 'object' && _lib !== null && typeof _gct == 'function' && _gct !== null ? 0 : -1 ;”, 真, 0, 0, ) ≠ “0”)
            调试输出 (“载入JS失败”)
            返回 ()
40.png


/js/getjy.js修改了getWA()函数
function getWA(loaddata, captchaId,pt) {
        if (typeof(loaddata) != 'object') {
            load = JSON.parse(loaddata)
        } else {
            load = loaddata;
        }
        var t = {"options": {"pt":pt}};
        var pow = getPowA(load.data,captchaId) ;
        var e = {
            "device_id": "",
            "lot_number": load.data.lot_number,
            "pow_msg": pow.pow_msg,
             "pow_sign": pow.pow_sign
         };
        var biht_arg = {
             "geetest": "captcha",
            "lang": "zh",
            "ep": "123"
        };
        _gct(biht_arg);
        Object.assign(e,biht_arg);        //把biht_arg 添加到 e    "biht":"1426265548",
        Object.assign(e,_lib);        //把_lib 添加到 e           "BgFJ":"5hQM",
        e.em = {"ph": 0,"cp": 0,"ek": "f1","wd": 1,"nt": 0,"si": 0,"sc": 0}
        var e = JSON.stringify(e);
        var w =getW(e,t)
        return w
}




39.png





回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 21 天

发表于 6 天前 | 显示全部楼层   河北省张家口市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 7 天

发表于 2024-12-13 23:55:47 | 显示全部楼层   浙江省湖州市
RE: 急眼4 JS逆向图文教程 附带demo [修改]
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 12 天

发表于 2024-12-1 13:13:30 | 显示全部楼层   广西壮族自治区玉林市

66666,牛逼
回复 支持 反对

使用道具 举报

签到天数: 13 天

发表于 2024-11-30 19:03:57 | 显示全部楼层   四川省广安市
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
回复 支持 反对

使用道具 举报

签到天数: 7 天

发表于 2024-11-24 19:39:38 | 显示全部楼层   广东省*
66666,牛逼
回复 支持 反对

使用道具 举报

结帖率:83% (10/12)
发表于 2024-11-19 09:02:17 | 显示全部楼层   安徽省滁州市
前来学习
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2024-10-31 15:32:53 | 显示全部楼层   广东省广州市
666666666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:93% (124/133)

签到天数: 15 天

发表于 2024-10-29 21:33:17 | 显示全部楼层   湖南省郴州市
看看66666666666666666666
回复 支持 反对

使用道具 举报

签到天数: 6 天

发表于 2024-10-23 19:24:47 高大上手机用户 | 显示全部楼层   山东省德州市
学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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