本文仅供学习使用,切勿非法使用,如有侵权请联系作者及时删除!
前言
无意中看到一个网站采用国密SM2算法
进行登陆参数进行加密,之前接触的加密基本都是国外的算法,例如RSA
、DES
、MD5
等等。国密接触的比较少,所以分析一波。
链接:SM2算法简介
目标网站
aHR0cHM6Ly9vbmUucGluZ2FuLmNvbS5jbi9wYW9uZS9pbmRleC5odG1sP2FwcElkPTExMDQ1Jm9yaWdpbkFwcD10cnVlIy9sb2dpbg==
加密分析
输入账号密码即可抓包
可疑的的参数看一下有哪些 :
appId: 11045
validCode: DLjc
loginName: 138.脱敏处理
loginPwd: CN-SB4E3165567BE750BA9BF05EACBB62A83F858D3414E2284DFE71E291533CD5691411E2127BF7E41DF33F42F1FE16724EE6F6EA44879AA62F2B286A3DE394C6A5FCB6B9B21084C6699F649471F7BBEF47B34ACE6FE53BEDA41F4A9652F9DAB87CF825C3C283CC6618002B816E9FBD353A349AC5BFC48274A
geetestChallenge: 6f4f429e392f09b7d8ea75cca59f05db85
geetestValidate: f891d87c420272acf347e2a6d9daa6bc
geetestSeccode: f891d87c420272acf347e2a6d9daa6bc|jordan
vcodeuuid: paicccode-4a8a1753fb3d2747bb87b44e7a25e97e69b956567
deviceId: 26.脱敏处理
deviceIp: 87266.脱敏处理
deviceType: web
jtSafeKey: eyJzZGt2ZXJzaW9uIjoiMS4zLjAiLCJ1c2VyX2FnZW50IjoiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwMC4wLjQ4OTYuNjAgU2FmYXJpLzUzNy4zNiIsImxhbmd1YWdlIjoiemgiLCJsYW5ndWFnZXMiOiJ6aCx6aC1DTiIsImNvbG9yX2RlcHRoIjoyNCwicmVzb2x1dGlvbiI6IjE1MzYsODY0IiwiYXZhaWxhYmxlX3Jlc29sdXRpb24iOiIxNTM2LDgyNCIsInRpbWV6b25lX29mZnNldCI6LTQ4MCwic2Vzc2lvbl9zdG9yYWdlIjoxLCJsb2NhbF9zdG9yYWdlIjoxLCJpbmRleGVkX2RiIjoxLCJvcGVuX2RhdGFiYXNlIjoxLCJjcHVfY2xhc3MiOiJ1bmtub3duIiwibmF2aWdhdG9yX3BsYXRmb3JtIjoiV2luMzIiLCJkb19ub3RfdHJhY2siOiJ1bmtub3duIiwiY2FudmFzX3dpbmRpbmciOiJ5ZXMiLCJjYW52YXNfZnAiOiJiNDg4OWJlYTA0ZDIxN2JjODkwOGQ0NTIzNGU3NjIxMDIiLCJ3ZWJnbCI6IjU5MTBhMzdiZjYyOGFhODI0YWRmMDY0ZTNlZTBhMGYxIiwidG91Y2hfc3VwcG9ydCI6IjAsZmFsc2UsZmFsc2UiLCJjb21wYXRNb2RlIjoiQ1NTMUNvbXBhdCIsImRldmljZVBpeGVsUmF0aW8iOjEuMjUsIm5hdmlnYXRvcl92ZW5kb3JTdWIiOiIiLCJuYXZpZ2F0b3JfcHJvZHVjdFN1YiI6IjIwMDMwMTA3IiwibmF2aWdhdG9yX3ZlbmRvciI6Ikdvb2dsZSBJbmMuIiwibmF2aWdhdG9yX21heFRvdWNoUG9pbnRzIjowLCJuYXZpZ2F0b3JfcGRmVmlld2VyRW5hYmxlZCI6dHJ1ZSwibmF2aWdhdG9yX2hhcmR3YXJlQ29uY3VycmVuY3kiOjgsIm5hdmlnYXRvcl9jb29raWVFbmFibGVkIjp0cnVlLCJuYXZpZ2F0b3JfYXBwQ29kZU5hbWUiOiJNb3ppbGxhIiwibmF2aWdhdG9yX2FwcE5hbWUiOiJOZXRzY2FwZSIsIm5hdmlnYXRvcl9hcHBWZXJzaW9uIjoiNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMDAuMC40ODk2LjYwIFNhZmFyaS81MzcuMzYiLCJuYXZpZ2F0b3JfcHJvZHVjdCI6IkdlY2tvIiwibmF2aWdhdG9yX29uTGluZSI6dHJ1ZSwibmF2aWdhdG9yX3dlYmRyaXZlciI6ZmFsc2UsIm5hdmlnYXRvcl9kZXZpY2VNZW1vcnkiOjgsInJlZmVyZXIiOiJodHRwczovL29uZS5waW5nYW4uY29tLmNuLyIsImd1aWQiOiJiOGIzYmFmNy00NmU2LTU3MjktNGI0Zi0xMjU1NTc5ZjU5OWIiLCJkaWQiOiI2YzU4ZTUwNzY2NGEyNmQ0NTc4ZWExNmU2NDg1Yzk5ZiIsIm9zIjoiVyJ9
token: c9b7dac51f2c4c4991e47c78dfce3ec9
fcmmRedirectFlag:
signtype:
疑似加密的地方有很多:loginPwd
、geetest
这些应该都是极验的参数、vcodeuuid
可能是用户id信息、
deviceId
设备的id信息、deviceIp
设备的ip信息、deviceType
设备类型,这个没啥好说的。最后这个jtSafeKey
应该是个密钥(yue四声)。
到这里我们就简单的分析完成了,loginPwd
是需要逆向的目标。
加密定位
搜索大法直接安排上
只有三个文件,第一个就是。所以说还是很幸运的,省去了很多时间和精力。点进文件接着用搜索大法搜索关键字:
23个,数量不是很多,慢慢找就行了
这是怕开发者找不到吗?注释都安排上了,盘它!
最有可疑的地方就是isBSSm2Union()
函数,打上断点,进入函数。
这里并没有加密的逻辑,既然断点能在这里断下来。肯定说明加密点在这里(毕竟注释不会骗我们😂)
果然,还是得有一双慧眼:
CN-S
和前面的pwd密文很像,跳过来看一下吧,多尝试总是没错的。
加密逻辑找到了,剩下得就是本地进行调试。
结尾
代码:国密SM2