Python+JS 逆向哪里多?必然是登录逻辑,投资界登录 pwd 参数解析
⛳️ 本次逆向实战操作
最近的几篇博客一直在围绕 JS 反爬进行编制,在这里领域中,登录的密码加密也是很大一块市场,接下来我们会使用几篇博客,系统的研究一下各种奇怪的加密姿势。
本次案例目标站点名称:
5riF56eR5pWw5o2u
(投资界)Base64 加密;目标站点:
https%3A%2F%2Fuser.pedaily.cn%2Flogin.aspx
,(URL 加密)。
登录页面非常简单,如下所示:
由于登录操作之后,页面会产生跳转,对于开发者工具来说,不易直接抓取请求数据,所以我们采用如下方式设置断点。
启动开发者工具,使用标签选择器,点击登录按钮,然后在面板右侧切换到事件绑定器,找到单击事件。
跳转到对应的 JS 内部,添加断点,核心代码就在下图红框所示区域。
接下来可以进行第一次跳转(请提前注册一个账号),等待断点停住。
由于代码未混淆,可以直接逐步调试,查看 PWD 参数是在哪里进行的加密。
本案例的请求头如下所示,其中仅
pwd
参数有加密嫌疑
逐步调试之后,很容易发现加密逻辑,代码如下所示:
绿色框即为加密逻辑,我们先搁置一下,因为发现了另一种打断点的形式。在代码中发现一个 JS 函数 .val()
,这是 jQuery 中更改 input
值的函数,基于此,我们还可以添加一个 DOM 属性断点。
DOM 断点添加到一个 id=pwd
的元素上,Elements 如下所示:
这其中有一个隐藏域标签,即 <input type="hidden" value="" id="pwd" name="pwd">
,该标签用于记录加密之后的密码值。
在标签上右键选择添加中断条件,如下所示。
当出现位置 3 处的蓝色圆点,表示断点添加成功,也可以在右侧 DOM 断点选项卡查看。
登录时发现属性暂停断点被触发之后,开发者工具呈现的状态如下所示:
此时在调用堆栈上可以快速的定位到 beforesubmit
函数,也可以发现如下代码
找到加密逻辑之后的操作就非常简单了,只需要将 hex_sha1
加密翻译成 Python 代码即可。
再次查阅请求会发现 pwd 进行了一步大写转换,这个步骤在 Python 里面也是一键实现的。
写在后面
在查询请求的时候,发现请求地址是 handler.ashx
,还有 login.aspx
,竟然是熟悉的 NET 接口逻辑,在多年以前,我也是写 ASP. NET 出身的呢~
📣📣📣📣📣📣右下角有个大拇指,点赞的帅气加倍
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/ac33807a21a85f86fdde5636e】。文章转载请联系作者。
评论