JS逆向
2024-5-28 22:57:54 Author: mp.weixin.qq.com(查看原文) 阅读量:11 收藏

Attacker安全航天日

JS逆向

    

渗透测试中经常会遇到JavaScript的加密数据,这时候就需要就需要进行JS逆向解密,那什么是JS逆向,即JavaScript逆向工程,是一种针对使用JavaScript加密或混淆的网站进行解密分析的技术手段在Web开发中,为了保护数据和防止恶意抓取,网站开发者会使用JavaScript对数据进行加密或混淆处理。而JS逆向工程的目的就是为了理解这些加密逻辑,从而实现对数据的提取或绕过某些安全措施。

1.首先打开网站,找到登录功能,输入账号密码、验证码等信息登录,查看network,可以看到登录时的请求payload内容。

主要有bundleId,dataencrypt,signtempKeytimestamp这几个参数,通过多次请求发现,bundleIdencrypt的值是固定的,所以在查找逻辑是这两个参数可以忽略。

通过断点可以查看到sign,timestamp,tempKey的生成逻辑,则timestamp时间戳,而sign的生成和i有关,控制台打印g()函数和a,发现是通过MD5对a的数据进行了加密处理

接着去分析tempKey,发现tempkey有两个不一样的值,其中return返回的r是用户所看到的数据,而r又经过了处理,同样在控制台打印Object(h["b"])函数,发现这是一个加密函数

点击进入函数,找到网站的加解密函数

先回到r,继续分析Object(m["b"])(n.CSK),发现是一个数组

进入函数Object(m["b"]),发现是一个数组函数

同样控制台打印n.CSK查看是什么值,通过观察也发现n.CSK的值是固定的

所以可以猜测Object(m["b"])(n.CSK)的逻辑是将一串长度16的字符串转化成了长度16的数组,即tempkey则是通过加密函数f加密之后,最后展示在数据包之中。

至此我们的关键字段的逻辑也就分析完成了,剩下的就是通过脚本去实现自动化加解密了,总结下来,js逆向的思路大致为:

        1.找到解密算法 

        2.分析加密算法逻辑 

        3.扣取js代码或通过其他脚本去实现自动化加解密

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247494796&idx=1&sn=06b9d1d3016da473a757a5fc0e550200&chksm=e8a5e6efdfd26ff9bf3275f30fd27f06159734e792eb7bd088a425defd9fec10c3e726c2ce7b&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh