当前位置: 首页 > news >正文

23-MD5+DES+Webpack:考试宝

本文案例:MD5+DES+Webpack:考试宝

加密参数

标头sign和响应都是加密数据,下面先来逆向一下sign值

定位sign加密位置+复现加密js代码

我们直接用xhr定位,触发断点:

查看入参:

没有入参往上一个栈看:

这里数据加密好了,继续向上跟栈:

最后一个栈还是加密的,咱们在异步前打上断点触发接口进入异步前:

这里应该是请求拦截器,咱么进入第2个函数(第一个0函数没有,进第三个,先进异步成功执行的函数):

就是请求拦截器,打上断点(一定要打在return的位置,不然断不下来)运行进来看看参数:

放掉,重新触发断点到异步前,再进入第6个函数(其实还是刚才那个函数),运行进来(第二次断下来才是第六个函数)看参数:

这次就有了呢,但是看这里也没有加密的函数啊,我们在这个文件中搜索一下sign看看是不是在哪儿赋值了,然后填入的:

这里请求头填入了个sign值为h,打个断点看看h是否是密文:

说明这里很可能就是赋值加密值的位置,接下来我们看看h从哪儿来:

打断点进来,然后在控制台上输出一下:

符合什么,md5吧,咱来确定一下是不是标准md5:

ok,标准md5加密,咱直接自己写一下代码,再补一下参数,封装一下即可:

var CryptoJS = require("crypto-js");
function encMD5() {var n = Date.now()h = CryptoJS.MD5("12b6bb84e093532fb72b4d65fec3f00b" + "0ab341e5-6d3a-4b4d-8808-ae5daee96a64" + "/questions/lists" + n + "12b6bb84e093532fb72b4d65fec3f00b").toString()return {'timetimestamp': n,'sign': h}
}
console.log(encMD5())

result:

验证一下能不能拿到数据:

虽然直接拿到了明文数据,但咱还是再逆向一下响应数据试试

找响应解密位置

响应数据直接hook:

点了好多次才找到这个,但是不是…hook不行试试关键字搜索吧:

翻页看看触发哪个断点吧:

触发了这个看样子像是DES加密(对称加密),咱直接扣代码吧

扣代码+补环境

核心代码如下:

运行:

咱直接全扣代码,找一下o在哪儿赋值的:

打上断点,然后翻页重新触发断点,发现触发不了,这时就应该想可能是webpack了,刷新网页断下来了:

进去之后发现webpack标志:

观察一下这个js文件:

标准外链式webpack打包,全扣下来,运行:

window = global;o = n(302)别忘记补,接着运行:

将加载器导出到全局:

这里一定要看一下加载器名字到底叫什么,不一定就是n,bc在最上面(全局)定义上即可,再运行:

开始拿模块了,写上这句话:

运行:

拿下来发现还要拿好多模块,咱直接使用批量获取模块的方法:

第一步:先刷新页面让断点到这里:

第二步:进n中在if这里打上断点,运行过来:

第三步:将c赋值为空(清除缓存):

第四步:设置变量准备接收所需要的模块:

第五步:设置条件断点:

第六步:寻找运行区间:

第六步:运行

第七步:控制台输出一下aaa:

第八步:拿下来所有的模块:

// 输入此行代码即可将模块拼接成字符串再copy下来
result = '{'; for(let x of Object.keys(aaa)){result = result + '"' + x + '"' + ":" + aaa[x] + ','}; result = result + '}'

粘贴下来将引号去掉再将其粘贴在webpack的模块位置即可,vs可能做不了,还带是pycharm,粘贴好之后整理一下如图:

接着运行会报这个错:

接着运行,缺啥补啥即可:

然后会报错,应该是密钥不正确(我们之前拿到的t在刷新完网页之后就会变),之前讲过,密钥要不是前端写死的要不就是后端传过来然后前端从接口中拿到,这里我们写死发现不对,那就只可能是后端传入后前端请求的,我们顺着t来找在哪儿请求,请求的什么接口,这里t是参数传入的,就进入上一个栈:

进入之后发现是这里生成的(下面有个No.a的方法,那里是刚我们过来的地方,即解密位置),打上断点重新翻页运行过来:

这里看不出什么,进函数:

然后这里是拿出localStorage里面的e(passphrase),这里传入的:

获取的就是这个接口的这个值:

py发请求将它拿下来在传入js解密然后就能得到结果了

小结

本文主要讲的是批量获取webpack模块,还有注意的就是发两次请求,一次拿密钥一次拿数据,本文到此就结束了,webpack以后会经常遇到,但不是说遇到就要用webpack,这是一种思路,类似于代码全扣,我们也可以一点一点扣,只要能逆向出来就OK
http://www.dtcms.com/a/614520.html

相关文章:

  • 前端构建工具环境变量,安全管理
  • 个人网站名称举例网站建设需要的硬件
  • 数据分析笔记09:Python条件语循环
  • 可在哪些网站做链接赣州网络招聘
  • 高端网站制作网站背景自动切换
  • 代码生成工具GitHub Copilot介绍
  • RDMA基本操作类型---send/recv,write/read
  • 2.37基于Multisim的数字电子钟准点报时,时间可调,Multisim时钟,Multisim电子时钟。含3000字报告。功能:带准点报时,时间可调
  • 建筑模板有哪些seo优化按天扣费
  • 广州网站设计联系方式旅游做攻略用什么网站好
  • 小华HC32L136K8TA 单片机新建 MDK5 工程模板 (一)
  • day15(11.15)——leetcode面试经典150
  • LED闪烁功能代码详解
  • 这几年做哪些网站致富基于ssh框架的网站开发流程
  • 远程(本地)连接不上虚拟机
  • Ubunntu24.04 下载jdk 8
  • SpringCache详细教学使用
  • 39Nginx的rewrite规则执行逻辑详解
  • C++—priority_queue/仿函数:优先级队列的使用及模拟实现
  • 做网站哪些dw使用模板做网站教程
  • 深圳市光明建设发展集团网站网站建设面谈话术
  • Java EE进阶5:Spring IoCDI
  • 中专生学历提升与职业发展指南
  • 易语言怎么反编译 | 如何通过反编译理解易语言的工作原理与破解技巧
  • 阿里国际站韩语网站怎么做百度帐号个人中心
  • EnsembleRetriever中的倒数融合排序算法
  • 网站客户端制作多少钱wordpress导出html
  • 银河麒麟高级服务器系统(V11)的安装部署实操保姆级教程
  • 202552读书笔记|《漫步在晴朗的日子里》——拥有一颗坚定的心去面对朝花夕拾,潮涨潮落
  • 物流查询网站开发青岛网站建设好不好