前言
由于某画师的登录接口有加密 故此分析
网址: aHR0cHM6Ly9taWh1YXNoaS5jb20=
尝试
登录的api:/api/v1/authorization_tokens/
cookie:
表单数据:
目标
可以看到phone
和password
都为明文, 但接口的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访问登录即可
至此登录分析就告一段落了