测试中遇到的一些js加密和签名问题
2022-9-6 12:1:7 Author: www.secpulse.com(查看原文) 阅读量:31 收藏

001某平台数据包内容加密

测试时抓包发现数据包的请求包和返回包内容都进行了加密,且请求包内容形如:abchtrne/rerhn34rhnfe,而返回包内容则为{"data":"reene43jygrnd534htrfdre"},由此可见该站请求包和返回包内容的加密方式不相同

1.png

点击调试器,选中要查看的js文件,点击下方的{}使代码更容易查看

2.png

寻找加解密关键点,在encryption文件夹下的js文件可以看到该项目很有可能使用的是国密加密算法SM3,SM4

3.png

在app.js中搜索关键词sm3,sm4,encryptData等关键词,找到加解密方法,以下os和rs方法为请求包加密方法,而cs和ls则为返回包解密函数。由于从数据包中看到的请求体数据和返回包数据的格式分别为字符和json数据。os方法加密后的数据为json格式,因此请求包加密方式为先使用SM4的CBC模式加密,然后使用ECB模式进行加密,最后使用SM3对json数据加密。

4.png

由于返回包json数据中并没有iv,但是存在data参数,因此返回包的解密方式为先使用ls方法再使用cs方法

5.png

使用控制台先调用ls方法第一次解密返回包内容

6.png

查看第一次解密后的数据

7.png

调用cs方法获取真实数据

8.png

在控制台中debuge调试,t字段中包含加密前的数据

9.png

在控制台中修改t中的数据即可在加密前修改请求包内容

10.png

002某平台数据包签名

测试时发现数据包中包含签名字段,在repeater模块中修改参数无法执行

正常执行

图片.png

修改参数admin_pid,提示权限检查错误

图片.png

打开调试器搜索签名参数

12.png

下断点并点击测试的功能点可以看到aj即为签名参数,而aj的值即为红框圈出的部分

12.png

查看对象newoptions中的各种参数

图片.png

在控制台中修改对象中的参数

图片8-1024x111.png

打开burp开启抓包,点击执行断点

14.png

此时抓到数据包,并将数据包中admin_pid参数修改为我们在控制台中修改的参数点击执行成功

图片.png

本文作者:

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/186770.html


文章来源: https://www.secpulse.com/archives/186770.html
如有侵权请联系:admin#unsafe.sh