写点什么

Python+JS 逆向哪里多?必然是登录逻辑,投资界登录 pwd 参数解析

作者:梦想橡皮擦
  • 2022 年 7 月 11 日
  • 本文字数:1163 字

    阅读完需:约 4 分钟

⛳️ 本次逆向实战操作

最近的几篇博客一直在围绕 JS 反爬进行编制,在这里领域中,登录的密码加密也是很大一块市场,接下来我们会使用几篇博客,系统的研究一下各种奇怪的加密姿势。


  • 本次案例目标站点名称:5riF56eR5pWw5o2u(投资界)Base64 加密;

  • 目标站点:https%3A%2F%2Fuser.pedaily.cn%2Flogin.aspx,(URL 加密)。


登录页面非常简单,如下所示:



由于登录操作之后,页面会产生跳转,对于开发者工具来说,不易直接抓取请求数据,所以我们采用如下方式设置断点。


启动开发者工具,使用标签选择器,点击登录按钮,然后在面板右侧切换到事件绑定器,找到单击事件



跳转到对应的 JS 内部,添加断点,核心代码就在下图红框所示区域。



接下来可以进行第一次跳转(请提前注册一个账号),等待断点停住。



由于代码未混淆,可以直接逐步调试,查看 PWD 参数是在哪里进行的加密。


本案例的请求头如下所示,其中仅 pwd 参数有加密嫌疑


逐步调试之后,很容易发现加密逻辑,代码如下所示:



绿色框即为加密逻辑,我们先搁置一下,因为发现了另一种打断点的形式。在代码中发现一个 JS 函数 .val() ,这是 jQuery 中更改 input 值的函数,基于此,我们还可以添加一个 DOM 属性断点。


DOM 断点添加到一个 id=pwd 的元素上,Elements 如下所示:


< div class = "form-group has-error" >    <    input type = "password"autocomplete = "off"id = "password"data - rules = "l:{6,15}:密码长度为6到15个字符"class = "form-control"placeholder = "密码" >    <    input type = "hidden"value = ""id = "pwd"name = "pwd" >    <    span class = "error-info" > 密码长度为6到15个字符 < /span></div >
复制代码


这其中有一个隐藏域标签,即 <input type="hidden" value="" id="pwd" name="pwd"> ,该标签用于记录加密之后的密码值。


在标签上右键选择添加中断条件,如下所示。



当出现位置 3 处的蓝色圆点,表示断点添加成功,也可以在右侧 DOM 断点选项卡查看。



登录时发现属性暂停断点被触发之后,开发者工具呈现的状态如下所示:



此时在调用堆栈上可以快速的定位到 beforesubmit 函数,也可以发现如下代码


$("#form_login #pwd").val(hex_sha1($("#form_login #password").val()));
复制代码


找到加密逻辑之后的操作就非常简单了,只需要将 hex_sha1 加密翻译成 Python 代码即可。


import hashlib
pwd = "你的密码"hex_sha1 = hashlib.sha1(pwd.encode("utf-8")).hexdigest()print("sha1加密前 :", pwd)print("sha1加密后 :", hex_sha1 )
复制代码


再次查阅请求会发现 pwd 进行了一步大写转换,这个步骤在 Python 里面也是一键实现的。


写在后面

在查询请求的时候,发现请求地址是 handler.ashx ,还有 login.aspx ,竟然是熟悉的 NET 接口逻辑,在多年以前,我也是写 ASP. NET 出身的呢~



📣📣📣📣📣📣右下角有个大拇指,点赞的帅气加倍


发布于: 刚刚阅读数: 3
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
Python+JS逆向哪里多?必然是登录逻辑,投资界登录pwd参数解析_Python_梦想橡皮擦_InfoQ写作社区