目标网站:aHR0cDovL3NoYW5naGFpLnBiYy5nb3YuY24vZnpoc2hhbmdoYWkvMTEzNTc0LzEzMTk3L2luZGV4NC5odG1s
获取内容:首页的通知与公告
网站分析:打开fiddler,换无痕模式,翻页,会看到是先访问了目标页面,再访问一个网址,最后重新访问目标页面才会有数据出来
我们用requests请求一下,会返回一段混淆后的代码,那么可以猜测中间访问的那个网址,是这段代码生成并访问的。
分析混淆代码:我们把代码格式化一下放到notepad++
emmm,看到是v6的混淆,大概1300行,因为以前遇到混淆我都是跟栈硬刚的,这个一下子有点难分析,没办法只能跑去学了好几天的ast再来搞,下面是解混淆后的,大概500行,其中包括(字符串解密,花指令解密,switch流程平坦化,二项式拼接,解除逗号表达式),ast代码的话可以私聊我,就不放出来了(不敢这么大胆)
分析解混淆后的代码:图二中我用红色框出可疑变量,现在来搜下到底哪里用到了,可以看到_0x13698a用到了,我们执行一下结果
现在再来看哪里调用了_0x13698a,直接全局搜
可以看到_0x13698a经过tostring后传给了_0xcff1b8,那么直接全局搜_0xcff1b8
到这里基本差不多了,结合这两个函数,会生成一段字符串,再拼接一下就完整的url了。
思路:第一次访问,拿到js代码,通过正则匹配出第一张图我框出来的变量,然后调用扣出来的那两个函数生成字符串,拼接成完整url并访问,最后再访问一次网页就可以拿到数据了。