赞
踩
今日受害者网站:https://jzsc.mohurd.gov.cn/data/company
我们的目标是爬取该网站列表页当中的企业信息
首先刷新网页进行抓包,观察一下数据在哪个数据包当中被返回(获取返回数据)
结果发现返回的都是一串看不懂的密文
搜索数据包中的文字也没有找到任何信息
这说明我们收到的响应数据是加密后的结果,返回客户端之后由客户端解密拿到明文字符串展示在前端当中,所以我们才能在网页看到有效的信息
因此现在就需要对返回的响应数据进行解密(decrypt)
我们直接搜索decrypt,在所有可疑的位置打上断点
注意:像css/axios//jquery/react这种可以直接pass;但是app/chunk不能pass
另外一个js文件也不能放过
然后我们重新刷新网页,来再次发送请求
这样就定位到了解密的关键位置,不难发现是使用AES-CBC模式进行的加密解密
此外还有2处断点是具体的加密细节,可以直接忽略(取消断点)
既然是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都是直接静态给出了
但是我们在使用之前需要验证一下值是否正确
结果发现密钥的值竟然和js代码当中给的不一致!
我们往下翻,原来是在执行解密之前key的值被重新修改了.......
看来还是得小心点留个心眼啊
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。