Js逆向之猿人学第九题

目标网站

https://match.yuanrenxue.com/match/9

既然题目写明了是动态cookie,那我们直接用fiddler抓一下包看看
要注意一点,抓包前清除一下cookie
在这里插入图片描述
不出所料,两次请求,我们看看返回的什么
在这里插入图片描述
重返回数据中我们可以得到一下信息:

  1. cookie中设置了sessionid
  2. 有一大片js被混淆
  3. 首先加载了这个地址中的js (/static/match/safety/match9/udc.js),然后加载了后边一大片的js,
    划到最后,又重新刷新了网页 location.reload()

在这里插入图片描述
在第二次请求中就看到了已经生成好的cookie了,那么就可以肯定,在第一次请求中设置了cookie
那就直接看第一次请求返回的js,复制到本地文本编辑器
在这里插入图片描述
本来想用猿人学里的解混淆工具解一下,但是好像没用,所以就被迫学习了AST

这里先看一下反混淆后的结果吧
在这里插入图片描述
最开始的700多行混淆js,经过处理之后剩下100多行(其实有用的就几行),从上图一眼就可以看出来
是哪几行

for (var m = 1; m <= 5; m++) {
    
    
    res = decrypt("1637892031") + "r";
  }

  document["cookie"] = "m=" + (m - 1)["toString"]() + res + "; path=/";

那么现在的问题就是这个 decrypt 是哪里来的,解决这个就算完成了
回想之前第一次请求返回混淆代码那里,还请求过一个js文件
‘/static/match/safety/match9/udc.js’ 看看它返回的什么
在这里插入图片描述
可以看到返回的还是混淆的代码,还是反混淆一下
在这里插入图片描述
原来9000多行代码,反混淆后3000多行,差不多就是rsa的行数了
其实已经可以看到decrypt
我们在网页中执行一下看看
在这里插入图片描述
OK,然后模拟一下网页的请求顺序,用代码实现一下就好了。
最后还想说一下这个反混淆的问题
之前对混淆也是陌生的,后边在js逆向的过程中也遇到表较多的网站都有混淆
所以也就学习了一下,猿人学第九题也算是我第一个学习反混淆的成果了,感觉还不错
后边也会做AST的学习方法,分享一下学习心得

おすすめ

転載: blog.csdn.net/qq_43454410/article/details/121553526