js逆向-某网站国密分析

admin 2025年3月10日23:12:57评论17 views字数 1491阅读4分58秒阅读模式

本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!   如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!

网站

aHR0cHM6Ly9jcmVkaXQuaGQuZ292LmNuL3h5eHhncy8=

接口分析

打开网站选择【行政处罚】,通过Fetch/XHR过滤即可发现数据包。

请求

js逆向-某网站国密分析

响应

js逆向-某网站国密分析

通过接口能够看出使用了 sign加密类型为SM2。那么signType加密类型对应的可能是另一个参数或响应体。

简单的分析下来明确了接下来的方向,即请求和响应的双重加密。

参数分析

  • nonceStr
  • queryContent
  • sign

需要分析的有这三个参数,拿最长的参数进行全局搜索。

js逆向-某网站国密分析搜索只有一个,那么事情就简单了。

js逆向-某网站国密分析

拆解三目运算符后代码简化如下:

i = ls.sm4.encrypt(i, e.encryptKey)

其中encryptKey为固定值,i是请求参数

js逆向-某网站国密分析

js逆向-某网站国密分析这样就获得了queryContent

继续下一个参数,向上找找可以发现请求参数包裹在一个对象中。

js逆向-某网站国密分析

需要的nonceStr也已经找到了。

既然知道请求参数都在对象n中,搜索n.sign应该是能够获得到结果的。

js逆向-某网站国密分析

正好印证了上文的分析。

参数的加密分析到这里就结束了,需要扣取的代码简单整理一下:

var appSignPrivateKey = "xxx";var appSignPublicKey = "xxx";var n = {        version: "1.0",        appId: 'xxxx',        signType: 'SM2',        encryptType: 'SM4',        nonceStr: H.uuid(),        timestamp: H.timeStamp()    };var i = `param=&page=${page}&size=10`;var page = 1n.queryContent = ls.sm4.encrypt(i, encryptKey)n.sign = Zi(o = ls.sm2.signature(a, appSignPrivateKey, appSignPublicKey, n.appId));

扣代码

请求

nonceStr

打上断点,重新触发该接口请求。

js逆向-某网站国密分析

可以将H对象都拿下来,或者是只拿使用到的相关部分。js逆向-某网站国密分析

继续查看N

js逆向-某网站国密分析

N指向T

js逆向-某网站国密分析

继续跳进去将函数B扣下来,将整个T的原型链函数也扣取下来,就可以获取到

nonceStr参数。
queryContent

这个参数使用了SM2加密,扣的内容会比较多,但是难度也不高,将断点跳过来。

js逆向-某网站国密分析

ls对象拿下来,从图中还需要将kr拿下来,继续深入。

js逆向-某网站国密分析

_r函数如下:

js逆向-某网站国密分析

将这些函数拿到本地不断运行,会不断报错,将报错缺少的内容补上再运行,循环往复就可以获取到结果了。

本地结果:js逆向-某网站国密分析

网站结果:js逆向-某网站国密分析

多次运行发现相同页码下加密结果相同,本地复现没问题。

sign
js逆向-某网站国密分析

参数比较多,但是都有迹可循,不展开说了。ls对象前面已经扣下来了,将剩余部分补完整问题不大。

Zi函数:

js逆向-某网站国密分析

还是上面的套路,缺什么就补什么,比较考验细心程度和耐心。

js逆向-某网站国密分析

响应

使用XHR断点同样hook该接口。因为是异步请求,如果一直F11跳断点会丢掉很多东西,建议使用F9跟栈,或者使用图上的小箭头。js逆向-某网站国密分析

不知跟了多久,发现一处可疑的地方。

js逆向-某网站国密分析

响应拦截器,顾名思义就是对响应的内容做操作,可能会涉及到解密。 里面的控制流需要逐步分析。

js逆向-某网站国密分析

还是熟悉的kr对象,继续补完所需的代码即可。

js逆向-某网站国密分析可以看到本地的解密也是没有任何的问题。

js逆向-某网站国密分析

总结

网站大量使用异步,跟栈时需要耐心,整体的加密也不算太难,获取的加密的key值也可以尝试使用python或其他语言还原。

原文始发于微信公众号(实战安全研究):js逆向-某网站国密分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月10日23:12:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   js逆向-某网站国密分析https://cn-sec.com/archives/3818370.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息