001某平台数据包内容加密
测试时抓包发现数据包的请求包和返回包内容都进行了加密,且请求包内容形如:abchtrne/rerhn34rhnfe,而返回包内容则为{"data":"reene43jygrnd534htrfdre"},由此可见该站请求包和返回包内容的加密方式不相同
点击调试器,选中要查看的js文件,点击下方的{}使代码更容易查看
寻找加解密关键点,在encryption文件夹下的js文件可以看到该项目很有可能使用的是国密加密算法SM3,SM4
在app.js中搜索关键词sm3,sm4,encryptData等关键词,找到加解密方法,以下os和rs方法为请求包加密方法,而cs和ls则为返回包解密函数。由于从数据包中看到的请求体数据和返回包数据的格式分别为字符和json数据。os方法加密后的数据为json格式,因此请求包加密方式为先使用SM4的CBC模式加密,然后使用ECB模式进行加密,最后使用SM3对json数据加密。
由于返回包json数据中并没有iv,但是存在data参数,因此返回包的解密方式为先使用ls方法再使用cs方法
使用控制台先调用ls方法第一次解密返回包内容
查看第一次解密后的数据
调用cs方法获取真实数据
在控制台中debuge调试,t字段中包含加密前的数据
在控制台中修改t中的数据即可在加密前修改请求包内容
002某平台数据包签名
测试时发现数据包中包含签名字段,在repeater模块中修改参数无法执行
正常执行
修改参数admin_pid,提示权限检查错误
打开调试器搜索签名参数
下断点并点击测试的功能点可以看到aj即为签名参数,而aj的值即为红框圈出的部分
查看对象newoptions中的各种参数
在控制台中修改对象中的参数
打开burp开启抓包,点击执行断点
此时抓到数据包,并将数据包中admin_pid参数修改为我们在控制台中修改的参数点击执行成功
本文作者:白
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/186770.html