您的位置:首页 > 新闻 > 会展 > wap网站建设费用_南京展厅设计装修_seo优缺点_浙江seo

wap网站建设费用_南京展厅设计装修_seo优缺点_浙江seo

2025/5/30 6:12:28 来源:https://blog.csdn.net/weixin_46672080/article/details/145951384  浏览:    关键词:wap网站建设费用_南京展厅设计装修_seo优缺点_浙江seo
wap网站建设费用_南京展厅设计装修_seo优缺点_浙江seo

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

网站

aHR0cHM6Ly9jcmVkaXQuaGQuZ292LmNuL3h5eHhncy8=

接口分析

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

请求

响应

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

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

参数分析

  • nonceStr
  • queryContent
  • sign

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


搜索只有一个,那么事情就简单了。

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

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

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


这样就获得了queryContent

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

需要的nonceStr也已经找到了。

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

正好应证了上文的分析。

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

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 = 1
n.queryContent = ls.sm4.encrypt(i, encryptKey)
n.sign = Zi(o = ls.sm2.signature(a, appSignPrivateKey, appSignPublicKey, n.appId));

扣代码

请求
nonceStr

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

可以将H对象都拿下来,或者是只拿使用到的相关部分。

继续查看N

N指向T

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

queryContent

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

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

_r函数如下:

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

本地结果:

网站结果:

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

sign

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

Zi函数:

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

响应

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

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

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

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


可以看到本地的解密也是没有任何的问题。

总结

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com