【JS逆向学习】五矿(rsa加密)

逆向目标

接口: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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗雅颂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值