免责声明
由于传播、利用本公众号所发布的而造成的任何直接或者间接的后果及损失,均由使用者本人承担。LK安全公众号及原文章作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢大家!!!
请勿利用文章内的相关技术从事非法测试,由于传播,利用此文所提供的信息而造成的任何直接或者间接的后果与损失,均由使用者本人负责,文章作者不为此承担任何责任
登录请求的数据包
还是先看initiator,直接定位关键字login,为什么不看前两个呢,问就是经验
跟到这里来,可以看到此处发起ajax请求,先打上断点
按照正常登录流程走一遍,打的断点停在了这里,首先看到这里有个参数f 此时password字段已被加密
往上看 密码是由o赋值给它的
o来自于这里的a.encode
t.password就是我们输入的明文密码
核心加密就在encode
可以看到 这是典型的rsa加密 并且用到了jsencrypt这个库
整个流程就是先实例化对象,再设置密钥,然后进行加密
将明文进行拼接 拼接完成进行加密 再进行编码
跟到这个r.JSEncrypt,实际上在这里定义
实际上调用的是这里定义的qe函数
Webpack 是一个 JavaScript 应用程序的模块打包工具,它会把你项目中的多个模块(每个文件)进行打包压缩,最终生成一个浏览器可执行的文件。打包之后的代码通常是一个对象,每个属性是一个模块,用模块编号 作为键
而在这个js文件中,模块3负责加密逻辑;模块4负责引入 jsencrypt
库并导出,也就是说,最终加密的实现逻辑在模块4中实现,需要将模块4中的整个代码段全部扣出来,放在本地运行
最终的代码实现效果
当然扣出来的代码也不能直接跑,需要进行一些修改或者补环境啥的乱七八槽的,本次案例比较简单,直接修改部分源代码就可以
技术交流
原文始发于微信公众号(LK安全):Web加解密攻防2-某游戏网站逆向实战(扣代码)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论