文章目录
1.找数据接口
2.找解密字段
3.分析解密,还原JS代码
4.最后得到数据
前言
此网站找数据接口就不用多说了,我们直接进入正文,本文章比较长,写的很详细,一定要坚持看到最后,你会发现这个网站逆向很简单。
1.数据接口
2.找解密字段
不难从数据接口预览中看出,没有任何字段可以让我们搜索,查找加密字段。但是这个文章是解密,所以可以通过 decrypt( 进行搜索
问题好像又来了,搜索decrypt( 搜索不到结果,但是我们不慌,我们还有的是办法
接着我们输入json.parse(试试
那么结果是不是就出来了呢,那么就好办,直接打断点调试,最后找到被断住的地方
在这段JS代码中可以看到有很多json.parse,所以我们就需要通过一个一个的调试,找到是通过哪段json.parse(解密出来的
慢慢点击下一步,仔细观察e的数据变化,并且观察鼠标的移动,鼠标跳到哪儿,就说明执行到那了,通过观察我们可以看出数据跳到? r(e.Data) 数据e,就变成了明文数据了,但是仔细想想是不是r(e.Data)在作祟呢,其实不是,因为r函数传进去的已经是明文数据了,所以不是它生成的,那就再往前面看,发现是webInstace.shell(e)在作祟,找到地方就算开始解密了,直接把代码放到webInstace.shell上面去,再点击去。
然后就找到了这个函数
里面有些代码是不是有点看不懂,没关系看不懂的直接复制到控制台上,就能解析出来。
3.还原代码
接下来就直接还原类似代码即可,然后再一步一步分析。
还原到第一个if的时候要注意一下,因为第一个if是个多余的代码(返回的是一个undefined),所以可以直接删除
接着就可以全部先还原,再来慢慢分析代码
然后可以改个函数名,函数名可以随便赋予一个名字
现在可以分析函数了,首先观察_grsa_JS
可以看到这个是不是跟解密有关,所以直接在代码最上面引入const Cryptojs = require('crypto-js')
再把与_grsa_JS有关的改写一下(注意一定要改仔细),如下图:
我们再仔细分析函数,发现还有这个_0x9843d3函数没有得到解析,我们回到网页源代码处,发现上面就是我们所缺失的变量:
既然缺失,那我们就给它补上,所谓缺啥补啥
然后我们就可以把加密的明文,复制运行下代码试试,看看效果
发现是不是报错了
没关系我们来分析下
发现这返回的是个空值,说明这段代码并没有太大作用,反而增加麻烦,而且navigator还是没被定义的,那么我们索性就把这段删除了
把切片中的7也删除了,这样就确保循环不到7了
最后就惊奇的发现明文数据出来了
最后就是提醒下,如果还报错就看看是不是有地方没有补全,所以一定要代码补全,然后我们再结合Python文件进行解密,拿到我们想要的数据
小编最后希望这篇文章对你有所帮助,感谢。