web逆向-某网站请求参数加密以及返回数据解密

0 声明

仅用于技术交流
脱敏地址:aHR0cHM6Ly93d3cuYXFpc3R1ZHkuY24vaGlzdG9yeWRhdGEvaW5kZXgucGhw

1 分析和解密

0x01 F12检查

发现右击被禁用,F12快捷键也被禁用,换一种方式,先打开F12,在访问网页,发现会断在一处debugger出,这个debugger比较简单,在前面右击一律不在此暂停即可,打过断点之后点击继续执行脚本即可跳过
在这里插入图片描述
跳过之后发现页面显示检测到非法调试,说明仍被检测到调试了。那就再换一种方式,把调试窗口独立出来,再调试
在这里插入图片描述
换个城市,发现已经跳过了检测,并在Fetch/XHR中检测到了一个请求,发现其是POST请求,其中表单数据为加密数据,返回数据也为加密数据
在这里插入图片描述
在这里插入图片描述
至此,任务就是解析加密参数和解密返回结果。

0x02 解析加密参数

首先发现加密参数的表单数据的Key的值为hA4Nse2cT,去搜索一下,发现没有找到匹配项
在这里插入图片描述

那么只能调用堆栈去跟了,在启动器里点击堆栈进入代码
在这里插入图片描述
打个断点,然后换个城市重新请求,断在了一个send处,继续往上跟
在这里插入图片描述
发现是在Ajax里进行的操作,即表单数据中加密的value值即为pKmSFk8
在这里插入图片描述
可以看到是函数poPBVxzNuafY8Yu中传入了两个参数,一个为固定值GETMONTHDATA,另一个是一个字典,字典的值为我们搜索的城市名
在这里插入图片描述
先找一下这个函数并扣下来,在本地给起个函数名为parse_params
在这里插入图片描述
先粗略观察一下这个函数,发现有个osZ34YC04S(oNLhNQ),运行发现就是传入的第二个参数,可直接进行替换
还有一个hex_md5的函数,疑似md5算法,在控制台测试一下发现确实是md5标准加密算法,那么我们可以直接使用crypto-js中的MD5算法替换这个函数,可以少补很多代码

const CryptoJS = require("crypto-js");
let md5 = val => CryptoJS.MD5(val).toString();

运行发现报错:BASE64未定义
在这里插入图片描述
直接去页面里进入相应函数
在这里插入图片描述
粗略观察下这个代码
在这里插入图片描述
里面有一行new Base64(),说明我们还需要继续补这个Base64(),用相同的办法继续跟
发现是个比较大的函数,直接扣下来
在这里插入图片描述
再运行代码,发现报错:AES未定义
在这里插入图片描述
用补base64的方式补全代码
发现运行后得到了正确的结果
在这里插入图片描述

0x03 对加密结果进行解密

观察下这个Ajax代码,对其success后面的代码进行解析,发现原本结果dGHdO还是密文,在经过函数dxvERkeEvHbS后变成了明文,判断此函数为正确的机密函数
在这里插入图片描述
粗略观察下代码,原来是经过了以下步骤:1. base64解码 2. DES解码 3. AES解码 4. base64解码
在这里插入图片描述
根据扣加密参数相同的步骤,扣出相应的代码到本地,运行测试,得到正确结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值