逆向目标
接口:https://ec.minmetals.com.cn/open/homepage/public
加密参数:
- param:
T9AfskFfEu75T+I8TfyL1RUpoyqg/7tlkGzMb6kgWQXxKUcG9l/NRnx91r9rBpSHahAaFpg55txBJnlfdGgTItdXVDfqPtqf2b+6Qr5xIM2FKlWn5jV4+t/j+Wu26D2415Iec8YbSghkoHUc8ksU18nO5vZX1My7KWAFEDPg4PjSU+l5tnIxOm6iPp/D39vlr0ijHwTwq5mXU8zG/uSE32hAxfw8QOcXhV7opqRchmVWOvO/c+rHNQsLJOrz/DfqSWZf7IviNN0AgqCtK3oc2avuWxhXC9v8Ui82ldSShRUkS/dyJxoST+LA2CPTID4CBmhzlbxPBrNKZwqZcyInIMMraXaMplB5G9GPYNUMlz49V1HpCILk0hZQdcPkBK3EZTB2QYLM9qLnnthDsS26YyLpNoXROQeZwtVja9lfeoeerAZtWijAMSx/o6VSTGFRnD0lBtWupXC5JfHPatTFXBb/w336gyUMUlE7MPWf0NLeXWtC7Y2jHu5Ix4bx3Y9o
逆向过程
首先翻页观察网络请求,再次翻页发现仍然是两次网络请求,如下

首先分析 public 接口,发现返回内容如下
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCaNrAAWGIwWxsoKlj9g/fFmbqXXa/Fi9Pim55Qo3zgWCOR4bFnQ41rQ8OZhWfSeBVG4tDy5v7Rs+tQyqszpfhXJaSLWdhIlsTzT/XX9XIsQ7slbdsBAOi5XeWj8SU+dh1wLiX2u3J03f1h1px/1 JnKa8pKMYx/dH7QwwEJ9krDYwIDAQAB
上一篇【JS逆向学习】36kr登陆逆向案例(webpack)有介绍这种数据的特点,以 MIG 开头的公钥长度基本就是 1024 位,且加密方式基本断定是 RSA 加密,第一个接口就只是发起网络请求,返回 公钥,我们接着分析第二个接口by-lx-page,
我们发现 by-lx-page 返回正常,payload 只有一个加密参数 param,像这种请求参数加密的,可以直接 hook JSON的 stringify 方法,如果是response加密的就 hook JSON的parse方法
var _stringify = JSON.stringify;
JSON.stringify = function(param){
debugger;
return _stringify(param);
}
直接拷贝上述代码到控制台,或者使用油猴注入皆可,我们控制台注入后执行翻页动作

代码断住了,然后向上跟栈观察,得来全不费功夫

return P = p(c.a.mark((function A() {
var e, t, n, r, a, s, i = arguments;
return c.a.wrap((function(A) {
while (1)
switch (A.prev = A.next) {
case 0:
return e = i.length > 0 && void 0 !== i[0] ? i[0] : {
},
t = new v["a"],
A.next = 4,
u.a.post("/open/homepage/public");
case 4:
return n = A.sent,
r = n.data,
t.setPublicKey(r),
a = m(m({
}, e), {
}, {
sign: f

最低0.47元/天 解锁文章
416

被折叠的 条评论
为什么被折叠?



