js逆向-国密SM2初探


本文仅供学习使用,切勿非法使用,如有侵权请联系作者及时删除!

前言

无意中看到一个网站采用国密SM2算法进行登陆参数进行加密,之前接触的加密基本都是国外的算法,例如RSADESMD5等等。国密接触的比较少,所以分析一波。

链接: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: 

疑似加密的地方有很多:loginPwdgeetest这些应该都是极验的参数、vcodeuuid可能是用户id信息、
deviceId 设备的id信息、deviceIp 设备的ip信息、deviceType设备类型,这个没啥好说的。最后这个jtSafeKey应该是个密钥(yue四声)。

到这里我们就简单的分析完成了,loginPwd是需要逆向的目标。

加密定位

搜索大法直接安排上
在这里插入图片描述
只有三个文件,第一个就是。所以说还是很幸运的,省去了很多时间和精力。点进文件接着用搜索大法搜索关键字:

在这里插入图片描述

23个,数量不是很多,慢慢找就行了
在这里插入图片描述

这是怕开发者找不到吗?注释都安排上了,盘它!

最有可疑的地方就是isBSSm2Union()函数,打上断点,进入函数。

在这里插入图片描述
这里并没有加密的逻辑,既然断点能在这里断下来。肯定说明加密点在这里(毕竟注释不会骗我们😂)

果然,还是得有一双慧眼:

在这里插入图片描述

CN-S和前面的pwd密文很像,跳过来看一下吧,多尝试总是没错的。

在这里插入图片描述

加密逻辑找到了,剩下得就是本地进行调试。


结尾

代码:国密SM2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值