本公众号所发布的文章及工具只限交流学习,本公众号不承担任何责任!如有侵权,请告知我们立即删除。
案例一:某平台数据加密
测试时抓包发现数据包的请求包和返回包内容都进行了加密,且请求包内容形如: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方法在控制台中debuge调试,t字段中包含加密前的数据在控制台中修改t中的数据即可在加密前修改请求包内容案例二:某平台数据加密+签名
某平台登记完基础信息后点击提交信息查看数据包可以看到数据均被加密请求包和返回包中均存在三个参数,x、x1、sign查看js代码寻找加密逻辑其中x1疑似aes加密,直接搜索关键词定位到关键代码代码逻辑大致如下(代码经过简化)通过查看代码知道x为AES加密后的json数据,x1是经过RSA加密后的AES密钥,sign则是某种签名,且AES加密的密钥为动态密钥。继续查看RSA加密方法,key_1就是RSA加密的私钥既然知道了RSA私钥,且数据包中存在x1参数,那些直接使用RSA私钥解密X1参数获取AES加密的密钥然后再用获取的AES密钥解密X内容获取真实请求数据作者:白Einzz
原文:https://www.freebuf.com/articles/web/358924.html
文章来源: http://mp.weixin.qq.com/s?__biz=MzI1ODM1MjUxMQ==&mid=2247491998&idx=1&sn=4a7516e30c2aab861317bf952da8ebe1&chksm=ea0bd58edd7c5c98398e38dea474ea73801c3731ef56b9455074a821cf12c44e3fc459bb8956#rd
如有侵权请联系:admin#unsafe.sh