吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2907|回复: 2
收起左侧

[Web逆向] 某画师的登陆协议分析

[复制链接]
q6378561 发表于 2022-5-21 20:52
本帖最后由 q6378561 于 2022-5-21 20:55 编辑

前言

由于某画师的登录接口有加密 故此分析
网址: aHR0cHM6Ly9taWh1YXNoaS5jb20=

尝试

登录的api:/api/v1/authorization_tokens/
cookie:

表单数据:

目标

可以看到phonepassword都为明文, 但接口的cookie和表单的sensor_id数据进行了加密
下面进行分析

分析

表单分析

1.首先ctrl+shift+f全局搜索sensor_id字符串

搜索不到,说明字符串被加密了,只能另寻出路
来到api的Initiator地方追踪调用

通过一系列翻阅在从上往上数第10个调用发现异常

我们需要的是sensor_id但这里有个
sensorId: sensors.store.getDistinctId()
很有可能就是同一个东西,下个断点看看

通过发包后看看:

可以看到是相同的,说明是从这个函数生成的
通过全局搜索

然后再通过全局搜索找到关键函数

可以得出UUID()就是生成最初的sensor_id参数
搜索可得uuid的生成函数

                _.UUID = function() {
                    var t = function() {
                        for (var t = 1 * new Date, e = 0; t == 1 * new Date; )
                            e++;
                        return t.toString(16) + e.toString(16)
                    }
                      , e = function() {
                        return Math.random().toString(16).replace(".", "")
                    }
                      , n = function(t) {
                        function e(t, e) {
                            var n, r = 0;
                            for (n = 0; n < e.length; n++)
                                r |= o[n] << 8 * n;
                            return t ^ r
                        }
                        var n, r, i = navigator.userAgent, o = [], a = 0;
                        for (n = 0; n < i.length; n++)
                            r = i.charCodeAt(n),
                            o.unshift(255 & r),
                            o.length >= 4 && (a = e(a, o),
                            o = []);
                        return o.length > 0 && (a = e(a, o)),
                        a.toString(16)
                    };
                    return function() {
                        var r = String(screen.height * screen.width);
                        r = r && /\d{5,}/.test(r) ? r.toString(16) : String(31242 * Math.random()).replace(".", "").slice(0, 8);
                        var i = t() + "-" + e() + "-" + n() + "-" + r + "-" + t();
                        return i ? (just_test_distinctid_2 = 1,
                        i) : (just_test_distinctid_2 = 2,
                        (String(Math.random()) + String(Math.random()) + String(Math.random())).slice(2, 15))
                    }
                }

可以看到uuid的生成函数也十分简单 参数也十分固定 我们可以通过JS调用或者自写代码实现函数功能,为了节约时间这里直接采用JS调用的方式
有三个参数我们可以采用写死的方式来直接进行调用
var r = String(screen.height * screen.width);
var n, r, i = navigator.userAgent, o = [], a = 0;
改写为
var n, r, i = "\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36\"", o = [], a = 0;
var r = String(864*1536);
在本地调用看看

可以看到是没有任何问题的
这样表单的分析就完成了

cookie分析

可以看到有四个cookie
分别是
aliyungf_tc
__asc
__auc
sensorsdata2015jssdkcross

aliyungf_tc

第一个aliyungf_tc通过调试发现访问网页后网页会自动返回给你这个cookie,保存即可

asc和auc

全局搜索__asc发现如下关键函数

简单往上追踪就能得到

由于asc和auc的参数相同所以调用同一个即可

sensorsdata2015jssdkcross

可以发现sensorsdata2015jssdkcross这个cookie里面包含了sensor_id的参数
说明我们也可以通过cookie角度来获取sensor_id这个参数生成
全局搜索sensorsdata2015jssdkcross可以获取相关的生成信息,这里不做过多的详细说明

结束

这样某米的登录分析就这样大致结束了 后面只要添加cookie添加表单数据模拟post访问登录即可

至此登录分析就告一段落了

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
涛之雨 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
杨辣子 + 1 + 1 谢谢@Thanks!

查看全部评分

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

小飞虫 发表于 2022-5-23 12:59
感谢分享,图是不是挂了
wqs0987 发表于 2022-5-23 13:08
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 23:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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