python爬虫之js逆向案例教学

大家好!今天给大家介绍一下python爬虫之js逆向,本节主要为然案例来给大家讲解,可以仔细阅读这篇文章,了解一下关于js逆向的基本语法知识。

了解网页结构
本节案例网址:闪职

在这里插入图片描述进入网站后会出现登录的窗口,我们随便输入一个账号或密码,打开检查,打开网络,点击登录,进行抓包,我们会发现网页发送了两次请求,第一次是get请求,第二次请求是一个post请求,那为什么会有两次呢,大家想一想
在这里插入图片描述我们先来看一下我们这个所谓的用户登录,对吧,他是应该是post请求,因为它post请求会携带表单数据,对吧,然后它里面会有user name会有password,对,会有username和password,然后下面还有一个叫做什么token这个字段信息,

我们把这个放在一边,再截一张图给大家看看,
在这里插入图片描述然后我们再一次看,我们再一次输入我们的账号,再输一下密码,987654,点击登录,同样,我们这里还是找到这个POS的请求,找到这个表单数据,你去对比一下,做这个GS解密,首先一定要告诉做的事情是什么呢,就是要找到你要请求的,或者说要获取的这个加密字段,哪些加密参数是会变化,哪些参数是不变的,是固定值,像这个user name我们就不用去强调了,对吧,它是固定的吧,用户账号嘛,账号信息它固定,那最关键的就在于我们这个password,对,Password,你会发现它的值是变化的,那后面还会有一个叫做,token值这个也是变化的,也就是第一次发送的get请求会获取这个token值,之后携带着这个token值发送post请求,获取数据。

那现在token值有了,password怎么获取呢,我们接着往下看
在这里插入图片描述发送的相应里面又password,然后点击搜索,找到JS文件,可以看到此时有两个JS文件,那为什么不选择上面的呢,应为第二个英语大致意思为加密函数什么的,所以可以排除掉第一个,在这里插入图片描述我们可以看到这个代码量比较少,可以直接给他全部都复制下来,在编辑器里面打开,
在这里插入图片描述我们可以看见,粘贴下来之后会有一个eval,后面有一个什么function,那你会发现,其实你会发现你复制下来的内容和你之前的形式不太一样,就即使你把它改了,你也发现这个函数没有办法运行,只要JS代码的开头有一个eval,那就证明这个JS文件也被加密处理了,就是他把你加密函数又进行了一次加密,现在我看到这段代码,其实就根本不是我的加密函数内容,这种叫做JS的一个混淆。

那怎么办呢,没关系,魔高一尺道高一丈,那我们要想还原这个代码有两种方式,第一种方式是最简单的一种方式,通过在线的工具,地址链接:格式化工具
在这里插入图片描述选择解码方式
在这里插入图片描述粘贴我们网页中复制的代码,点击解码,
在这里插入图片描述我们会发现内容很乱,我们点击去格式化,再点击格式化,
在这里插入图片描述现在你看到的这段代码才是真正意义上的加密函数的代码,因为你可以看到一个什么dologin,对你可以看到一个叫做password_old,这是旧的密码,从过从我们这个选择器对象来查询到这个选择器当中的值values,加密后面会得到一个新的密码,对叫做pass_new嘛,新的密码,那这个就是我们的加密函数。

那我们就把这个加密函数复制,放到我们的这个什么,放到我们的这个JS文件当中,那现在我们就直接尝试调用一下,
在这里插入图片描述右键运行,你肯定不出意外就报错了,对吧,报错原因也很正常,他说这个符号,这个符号,没有被定义,什么意思呢,就在我们的这个前端当中,我们去选取元素对吧,选取这个标签元素的时候,找不到这个值,但是这个值我们现在都知道是多少,但是其实上我们应该怎么调试它,或者怎么确定这个东西就是我的加密函数呢,现在这个,就是我们要找的加密函数,这个就是我们要找的加密函数它的原内容,但现在它只是通过一个在线工具进行的一个解密。

那除了这种方式以外,我们还有另外一种方式,接着往下看,

在这里插入图片描述
我们回到网页中,打上断点,接着重新登录,会发现他会卡在这里,我们可以看见右边的p值,他是和我们在 解密网页工具中看到的函数是一样的,P函数就是我们还原后的代码数据。

我们连续点击步入
在这里插入图片描述
大家会发现,此时出来的这个函数是和我们在解码网页工具的函数是一样的,987654为旧密码,所以这这个就是我们需要的内容。

补环境–安装加密算法库

当我们的代码,当我们抠出来的这个JS代码,它运行不报错,并且得到的结果没有我们想要的,或者说我们连抠都无法抠出来的时候,我们只有两种方式,一种如果知道它的加密方法,它是用什么加密算法的,我们就通过Python来重构这个加密算法,另外一种就是通过JS环境来安装一些库,借助这个库里边自带的加密算法来进行加密,也就是俗称的补环境。

或者我也安装一个第三方库,那这种思路就是我们说到的补环境了,怎么补,很简单,我们先来看一下,怎么来安装这个库,怎么借助这个库里边自带的加密算法来进行这样一个加密,接着往下看,

首先第一点先打开我们这个JS文件所在目录,在这个路径下面打开我们的终端,
输入以下指令
npm config set registry https://registry.npm.taobao.org
npm install node-jsencrypt
npm install -g cnpm--registry=https://registry.npm.taobao.org
cnpm install node-jsencrypt

在这里插入图片描述
在这里插入图片描述
完成指令以后,出现蓝色符号,打开所在对应的js目录,会有两个文件,就代表安装成功,安装成功猴,我们进行文件加载
在这里插入图片描述如果想要调用这个do log,我就不用再去获取用户数的密码,可以自己写个行参,我们可以先把这个password_old定w为形参,再次运行,会出现错误
在这里插入图片描述我们在网页源代码里搜索pk,value值给他替换进去,我直接给他给他值,
在这里插入图片描述在这里插入图片描述每访问一次,这个密钥不变,是固定的,既然这个值是固定的,我直接在这里写好,登录按钮点击这些我都不要填写什么新的密码,这些我都不要,直接运行,我们可以看到,运行后的密文。

本节内容就到这里啦,如果对你有帮助的,别忘了收藏起来哦,如果有想要一起学习的伙伴,后台发送666,邀你进群,相互学习,一起向自己的方向启航!

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
嗨!对于爬虫中的 JavaScript 逆向案例,我可以给你提供一个简单的示例。请注意,这个示例只是为了帮助你理解逆向过程,真实的应用中可能涉及法律和伦理问题,请合法使用爬虫技术。 假设我们要爬取一个网站上的某个页面数据,但是该页面通过 JavaScript 动态生成。我们可以通过分析网页的 JavaScript 代码来逆向工程,获取所需数据。 首先,打开 Chrome 浏览器并进入开发者工具(按 F12 键或右键点击页面并选择“检查”)。然后切换到“网络”选项卡。 接下来,在浏览器地址栏中输入目标网页的 URL 并按下回车,浏览器将开始加载页面。在网络选项卡中,你将看到所有请求和响应的列表。 查找其中一个请求,该请求可能包含我们所需的数据。点击该请求并查看其请求头、响应头和响应体。 在响应体中,你可能会看到一些 JavaScript 代码,这些代码负责生成页面上的内容。你可以仔细阅读该代码,并找到生成目标数据的部分。 如果你发现目标数据是通过 Ajax 请求获取的,你可以查看该 Ajax 请求的 URL 和参数,然后使用 Python 的 requests 库或其他适当的方法模拟该请求,并解析响应获取数据。 如果你发现目标数据是在 JavaScript 代码中直接生成的,你可以尝试分析代码逻辑并编写相应的 Python 代码来模拟该过程。这可能涉及到使用 JavaScript 解释器或库来执行 JavaScript 代码。 需要注意的是,JavaScript 逆向工程是一项复杂的任务,需要对 JavaScript 和网络协议有一定的理解。同时,网站所有者可能会采取一些反爬虫措施来阻止你的行为,所以请务必遵守法律法规和网站的使用规则。 希望这个示例能够帮助你入门 JavaScript 逆向工程。如果你有任何其他问题,欢迎继续提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clown空城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值