js逆向——返回加密数据的处理

打印 上一主题 下一主题

主题 1012|帖子 1012|积分 3036

一、确定爬取目标

本日受害者网站:https://jzsc.mohurd.gov.cn/data/company
我们的目标是爬取该网站列表页当中的企业信息

二、数据抓包分析

首先革新网页举行抓包,观察一下数据在哪个数据包当中被返回(获取返回数据)
结果发现返回的都是一串看不懂的密文

搜索数据包中的笔墨也没有找到任何信息
​ 
这说明我们收到的响应数据是加密后的结果,返回客户端之后由客户端解密拿到明笔墨符串展示在前端当中,以是我们才气在网页看到有用的信息
因此现在就需要对返回的响应数据举行解密(decrypt)
三、js逆向分析

我们直接搜索decrypt,在全部可疑的位置打上断点
注意:像css/axios//jquery/react这种可以直接pass;但是app/chunk不能pass

别的一个js文件也不能放过
​ 
然后我们重新革新网页,来再次发送请求
如许就定位到了解密的关键位置,不难发现是使用AES-CBC模式举行的加密解密

别的还有2处断点是具体的加密细节,可以直接忽略(取消断点)

​ 
既然是AEC-CBC举行加密解密
那么我们就重点关注3个参数:密文(n),密钥(f),iv(m)
  
  1. a = d.a.AES.decrypt(n, f, {
  2.     iv: m,
  3.     mode: d.a.mode.CBC,
  4.     padding: d.a.pad.Pkcs7
  5. }
复制代码
往上观察发现密钥和iv都是直接静态给出了
​ 
但是我们在使用之前需要验证一下值是否正确
结果发现密钥的值竟然和js代码当中给的不划一!
​ 
我们往下翻,原来是在执行解密之前key的值被重新修改了.......
看来还是得小心点留个心眼啊
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表