js逆向——返回加密数据的处理
一、确定爬取目标本日受害者网站:https://jzsc.mohurd.gov.cn/data/company
我们的目标是爬取该网站列表页当中的企业信息
https://i-blog.csdnimg.cn/direct/8fb7bba5806a4f918f1f9adf2759b557.png
二、数据抓包分析
首先革新网页举行抓包,观察一下数据在哪个数据包当中被返回(获取返回数据)
结果发现返回的都是一串看不懂的密文
https://i-blog.csdnimg.cn/direct/e417e271043f4dd5a44470ff40191a12.png
搜索数据包中的笔墨也没有找到任何信息
https://i-blog.csdnimg.cn/direct/1e8187829d124b04b04c8347fd7a64fd.png
这说明我们收到的响应数据是加密后的结果,返回客户端之后由客户端解密拿到明笔墨符串展示在前端当中,以是我们才气在网页看到有用的信息
因此现在就需要对返回的响应数据举行解密(decrypt)
三、js逆向分析
我们直接搜索decrypt,在全部可疑的位置打上断点
注意:像css/axios//jquery/react这种可以直接pass;但是app/chunk不能pass
https://i-blog.csdnimg.cn/direct/36c21ef0a6db48fb82ee8a30545de94e.png
别的一个js文件也不能放过
https://i-blog.csdnimg.cn/direct/c497c52c79454c1f92536a4f6df3b98d.png
然后我们重新革新网页,来再次发送请求
如许就定位到了解密的关键位置,不难发现是使用AES-CBC模式举行的加密解密
https://i-blog.csdnimg.cn/direct/0af94a262e7b4518976b892486272803.png
别的还有2处断点是具体的加密细节,可以直接忽略(取消断点)
https://i-blog.csdnimg.cn/direct/768755ccf1054d7780c495fac14ab51c.png
https://i-blog.csdnimg.cn/direct/23a2d5d54d3b4ea49edb5d37916646a8.png
既然是AEC-CBC举行加密解密
那么我们就重点关注3个参数:密文(n),密钥(f),iv(m)
a = d.a.AES.decrypt(n, f, {
iv: m,
mode: d.a.mode.CBC,
padding: d.a.pad.Pkcs7
}往上观察发现密钥和iv都是直接静态给出了
https://i-blog.csdnimg.cn/direct/59832f1989e2484d83ca8eb1146b5b7a.png
但是我们在使用之前需要验证一下值是否正确
结果发现密钥的值竟然和js代码当中给的不划一!
https://i-blog.csdnimg.cn/direct/d8644dafd6c140e5b3f19b59a9032450.png
我们往下翻,原来是在执行解密之前key的值被重新修改了.......
看来还是得小心点留个心眼啊
页:
[1]