Python+JS逆向哪里多?必然是登录逻辑,投资界登录pwd参数解析 Y15
📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 621 篇原创博客
⛳️ 本次逆向实战操作
最近的几篇博客一直在围绕 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 出身的呢~
📣📣📣📣📣📣
右下角有个大拇指,点赞的帅气加倍
- 点赞
- 收藏
- 关注作者
评论(0)