JS逆向 | 无限Debugger之淘大象

今天继续和大家研究JS逆向,不少小伙伴在JS逆向的时候遇到过无限debugger的反爬,今天就拿一个网站练练手感受下无限debugger。

分析请求

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

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

显然不是很好解决,所以我们试试通过「条件断点」的方法绕过这个反爬。

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

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

https://segmentfault.com/a/1190000012359015

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

请求接口:

加密参数 sign :

定位加密位置

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

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

分析加密

很明显这个js文件经过一定程度的混淆,现在有两种方法解决:

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

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

这个加密比较简单,整体是md5加密这点通过分析请求可以猜到,多次请求加密都不变,接下来就是分析是哪些字段加密成md5值。

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

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

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

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

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

from hashlib import md5def md5value(s):  a = md5(s.encode()).hexdigest()  return a

到这里这次的分析的网站 -- 淘大象 就被我们攻克了,这次的网站加密不是很难,主要难点是分析请求时的无限debugger。

其实其他同类型的网站还有很多,我推荐大家阅读下面的文章,文章提到了其他解决debugger的方法希望对你有帮助。

https://mp.weixin.qq.com/s/BwH1JxY5jhFomZLwlQIvSA

本文分享自微信公众号 - 咸鱼学Python(xianyuxuepython)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

Python 是不是有点膨胀啊,甚至想和 Java 刚一把

TIOBE 编程语言排行榜 6 月更新已发布,排名前十的分别是:Java, C, Python, C++, Visual Basic .NET, C#, Jav...

9820
来自专栏C语言入门到精通

世界上最难学的编程语言,C语言只排第三,第一你绝对想不到!

本次参与最难学编程语言排名的选手我从以上榜单中筛选了10位大家比较熟知的,他们分别是:Java、C、Python、C++、.NET、JavaScript、PHP...

67910
来自专栏Devops专栏

Django 2.1.7 视图 - HttpResponse对象、子类JsonResponse、子类HttpResponseRedirect

视图在接收请求并处理后,必须返回HttpResponse对象或子对象。在django.http模块中定义了HttpResponse对象的API。HttpRequ...

14820
来自专栏贾志刚-OpenCV学堂

首发 | OpenVINO开发配套视频教程发布了

前面写过一系列的OpenVINO相关的技术文章,很多人希望出一套配到的视频教程,经过快两个月的各种煎熬与努力,OpenVINO开发视频教程终于发布了,首先来看看...

85930
来自专栏机器学习算法与Python学习

20多行 Python 代码优雅搞定 PDF 转换成图片

本文利用 PyPDF包来处理 PDF文件,为了方便快捷,我这里直接将一个页面转换成图片,就不需要去识别页面中的每一个 PDF元素了,这是没必要的。

86320
来自专栏未闻Code

一日一技:在Python中双下划线私有方法不能被调用的原理

在使用Python编写面向对象的代码时,我们会常常使用“继承”这种开发方式。例如下面这一段代码:

24130
来自专栏AI算法与图像处理

干货!CVPR2019论文已全面开放下载!附下载链接及方法

CVPR(Computer Vision and Pattern Recognition)简介

1.9K30
来自专栏AI研习社

Github项目推荐 | Kedro:生产级机器学习开源代码库

Kedro是一个工作流开发工具,可帮助你构建强大,可扩展,可部署,可重现和版本化的数据管道。 我们提供标准的方法,你可以:

15220
来自专栏日常学python

10万+的短视频被批量生产了,Python表示不服

前期有些自媒体大 V 靠搬运一些搞笑、好玩的 GIF,然后利用剪辑软件合成一段视频,再添加一个节奏感强的 BGM 后,上传各大自媒体平台后,能带来不错的阅读量和...

35620
来自专栏机器学习算法与Python学习

送给小白的 7 个 python 小坑

比如在创建一个新类时,该类中的所有内容都在声明下缩进,决策、循环还有其它结构语句也会出现类似的情况,

8720

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励