Python爬虫进阶 | 实战案例分析无限Debugger如何绕过

今天继续和你们研究JS逆向,很多小伙伴在JS逆向的时候遇到过无限debugger的反爬,今天就拿一个网站练练手感觉下无限debugger。

分析请求

先打开此次的目标网站--淘大象(taodaxiang.com/credit2)python

打开「开发者工具」就自动进入debug,咱们先格式化看看能不能经过重写函数解决。segmentfault

显然不是很好解决,因此咱们试试经过「条件断点」的方法绕过这个反爬。函数

咱们在 3393 与 3395 行右键添加「Add Conditional breakpoint」并在出现的对话框中输入「false」,这个时候无限debbuger的反爬就被咱们绕过了。工具

虽然这里很快就绕过了反爬可是「条件断点」有必定的局限性,这里推荐一篇文章以供学习,就再也不赘述。学习

segmentfault.com/a/119000001…网站

解决完反爬措施,咱们刷新页面查看页面请求,很快就定位到请求接口、加密参数等信息。加密

请求接口:spa

加密参数 sign :debug

定位加密位置

经过抓包请求咱们定位到了接口和加密参数,咱们试着经过搜索sign关键字定位一下加密位置。3d

经过搜索咱们找到三个包含关键字的文件,经过检索文件,很快定位到了sign值加密的位置:

分析加密

很明显这个js文件通过必定程度的混淆,如今有两种方法解决:

一是直接扣代码,绕过debugger以后扣这个代码不要太简单。

二是通读加密,直接改写成python加密。

这个加密比较简单,总体是md5加密这点经过分析请求能够猜到,屡次请求加密都不变,接下来就是分析是哪些字段加密成md5值。

这里比较明显的是js中的两段代码:

_0x2c114b['XDFEp']这个方法是将字符串拼接

_0x2c114b['zANjZ']这个方法是取字符串的MD5值

通过断点调试,发现最后字符串是由「查询的关键字」+ 「固定的key」+ 「查询的关键字」+ 「type参数值」拼接成的。

比对两种方式,经过python方法改写更加方便,主要代码以下:

from hashlib import md5
def md5value(s):
	a = md5(s.encode()).hexdigest()
	return a
复制代码

到这里此次的分析的网站 -- 淘大象 就被咱们攻克了,此次的网站加密不是很难主要难点是分析时的无限debugger,其实其余同类型的网站还有不少,你们能够参考文章中提到的方法本身试试~

相关文章
相关标签/搜索