记一次js反解密过程

碰到一个站点,使用了aes解密,但是header中有sign验证无法重放数据包,于是对加密进行破解尝试,感谢AirSky师傅在过程中提供的帮助

0x01:aes加密

在对某src挖掘的过程中,发现参数是加密的

以对这个src的了解,这个接口以及返回内容是比较敏感的,所以对此进行加解密是可能会有大收货。

看到这个参数,便想着是aes,全局搜索encrypt参数

很容易找到了aes加密方式以及key与iv,测试一下

成功解密了出来

0x02:反篡改绕过

在对接口进行修改的时候

header存在某参数有验证,导致无法篡改数据包,根据返回包提示,搜索相关js

其实也就是在刚刚的找到的js下面

debug一下

首先是header中的md5的值,从debug中可以发现是md5的body值,比如这里debug是找到md5的值

body的值为HCyRmsKeoPUdXumcW9mZAA==,解密后为{},md5一下

找到了一个header头

在继续往下跟进

在对header中的几个字段进行HmacSHA1,得到signature,这个在header中也能看到

其中还有一个Ciphertext字段,这个是用JSEncrypt加密的,无需修改,这样就得到了网站防止篡改的方式吗,利用脚本生成数据

str为我们想要发送的数据包,XData与Ciphertext为数据包中的内容,重新抓一个数据包

替换str,Xdata,Ciphertext的值,运行脚本


可以看到生成的值分别为Md5-Content,signature,body,替换得到的内容,发送数据包

可以看到成功绕过

发表评论

电子邮件地址不会被公开。 必填项已用*标注