赞
踩
其实做web端的爬虫,最常见到的就是js逆向方面的问题,既是重点也是难点,所以加强这方面的学习才是提升我们业务技能的重要突破点。接下来讲一下两个小实例,看一下基础的js逆向的破解(浅层篇)。
第一种加密情况:
①分析请求:
先打开目标网站---》打开控制台---》切换至XHR
然后刷新一下就会看到下面的情况
这里要解决的有两个:
接下来定位加密位置
②定位加密位置与分析加密
按照之前的套路,我们第一步是要搜索加密参数名token
打开search,搜索参数名就找到我们要的token了。
按照搜索的结果文件名,不难发现是第二个结果,点击打开可以找一下token的生成代码。
var token = md5(String(page) + String(num) + String(timestamp));
这段代码我们可以用js实现也可以用python。
偷懒一点用python实现token加密算法:
接着按照请求里看到的参数生成token试试
现在有了token参数之后接下来看看这个解密是怎么搞:
右键查看源代码发现了这个:
图中ip列表的位置是没有数据的,只有id ip_list,这是唯一值,所以值的再搜索一下。
追进去之后就可以看到下面的代码了:
打上断点,执行两步可以看到decode_str 后就开始出现我们需要的数据了,所以这里的decode_str就是我们要的解密方法:
我们复制到编辑器里调试运行一下:
可以看到Base64未定义,我们追进去把Base64的算法复制出来:
再次运行,根据提示缺失window对象,根据之前的方式是缺啥补啥,但是我们接下来分析一下这里调用的方法:
这里调用的是String.fromCharCode方法,我们替换一下再次运行:
可以看到这里就解出来了。
第二种加密情况:
分析请求
这次要分析的网站不同上一个的是,这次网站使用的是cookie加密,cookie的有效期过了之后就会返回一段js
使用有效的cookie请求我们需要的数据就再返回的网页中,所以我们只要解决这段js就好了。
分析加密
把返回的js复制到编辑器里格式化,可以看到代码分为两个部分:
参数定义部分:
函数执行部分:
直接执行没得出结果,为了方便知道这段代码发生了什么,我们复制到浏览器console里看看:
为了方便观察,我们把第二段的eval修改为console.log
可以看到这段代码写入了cookie
继续分析,我们把这段cookie相关的代码复制出来执行一下:
可以看到这里成功生成了一段cookie值和我们在网页上看到的一样!
到这里就分析完了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。