JS逆向

admin 2024年5月29日10:16:45评论12 views字数 919阅读3分3秒阅读模式

Attacker安全航天日

JS逆向

JS逆向

JS逆向

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

JS逆向

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

JS逆向

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

JS逆向

JS逆向

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

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

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

JS逆向

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

JS逆向

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

JS逆向

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

JS逆向

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

JS逆向

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

        1.找到解密算法 

        2.分析加密算法逻辑 

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

原文始发于微信公众号(迪哥讲事):JS逆向

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月29日10:16:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JS逆向https://cn-sec.com/archives/2790216.html

发表评论

匿名网友 填写信息