iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python+JS怎么实现逆向SMZDM登录加密
  • 549
分享到

python+JS怎么实现逆向SMZDM登录加密

2023-06-30 14:06:12 549人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“python+js怎么实现逆向SMZDM登录加密”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python+JS怎么实现逆向SMZDM登录加密”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧

本文小编为大家详细介绍“python+js怎么实现逆向SMZDM登录加密”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python+JS怎么实现逆向SMZDM登录加密”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

实战场景

这次被我们盯上的平台是【SMZDM】。

本次目标站点是:aHR0cHM6Ly93D3cuc216ZG0uY29tLw==

正式开始前,先注册一个账号,然后模拟一下登录,看一下有哪些参数被偷偷的藏起来了~

当看到登录之后的所有请求参数时,我们还是默默的把站点关闭,撤吧。

python+JS怎么实现逆向SMZDM登录加密

从上图可以看到usernamepassWord是重要加密区,geetest_开头的参数是下述点选验证码涉及的内容,本阶段不做拆解,可以持续关注后续验证码部分逻辑。

登录的点选验证码可以先忽略,这个阶段搞定它不是很容易。

python+JS怎么实现逆向SMZDM登录加密

接口请求参数是:

  • 请求网址: zhiyou.smzdm.com/user/login/ajax_normal_check

  • 请求方法: POST

参数分析

本次我们先不添加断点,先通过请求启动器进行分析,打开该链接的请求调用堆栈,然后依次分析相关地址。

python+JS怎么实现逆向SMZDM登录加密

 根据经验可以发现有一个common_submit函数,其所在的文件是window.js,可以重点关注。

接下来添加一个 XHR 断点,关键字是login/ajax_nORMal_check

断点打住之后,可以直接进入目标函数:

python+JS怎么实现逆向SMZDM登录加密

结果直接找到了相关加密逻辑,如下图所示:

python+JS怎么实现逆向SMZDM登录加密

核心代码进行提取,然后进一步进行分析。

var _ = login_obj.encryptPassword(i);(i = _), (r = btoa(r));

结果发现login_obj.encryptPassword函数竟然调用了一个新的接口。

encryptPassword: function(r) {        var t = null;        return $.ajax({            url: "//zhiyou.smzdm.com/user/login/pre",            type: "get",            async: !1,            dataType: "JSON"        }).done(function(e) {            var o;            t = e && 0 != e.error_code ? null : ((o = new JSEncrypt).setPublicKey(atob(e.data.pub_key)),            o.encrypt(r))        }),        t    },

关于账号使用的是 js btoa,这个没有什么特别的,就是简单的 base64 加密

通过开发者控制台,测试使用 btoa加密 12345,然后在通过 Python 进行相同的加密。

python+JS怎么实现逆向SMZDM登录加密

import base64wtext = "12345"# 编码a = base64.b64encode(wtext.encode())print(a.decode()) # 输出 MTIzNDU=

二者结果一致,username参数解决。

下面继续看password参数,密码加密的流程是:

  • 通过一个 api 获取 pub_key

  • 对 pub_key进行atob编码;

  • 设置JSEncryptRSAKey加密 KEY;

  • 对用户密码进行加密。

测试 pub_key 加密接口是否可以直接调用

import requestsheaders = {    "Host": "zhiyou.smzdm.com",    "Accept": "application/json, text/javascript, */*; q=0.01",    "Referer": "https://zhiyou.Python加密混淆.com/user/login/",    "User-Agent": "Mozilla/5.0 (windows NT 10.0; Win64; x64) 自己的 UA"}res = requests.get('Https://zhiyou.Python加密混淆.com/user/login/pre', headers=headers, timeout=3)print(res.text)

运行代码得到如下响应,其中pub_key也被获取到。 

python+JS怎么实现逆向SMZDM登录加密

 多次测试接口之后,发现错误,触发了账户限制,在大家编码的时候,建议多准备几个不同的账号,防止被封禁。

python+JS怎么实现逆向SMZDM登录加密

 进一步调试发现 JS 加密使用的是一个插件,直接下载对应 JS 如下:

https://res.Python混淆.com/resources/public/user/zhiyou/js/jsencrypt.min.js

在本地搭建一个 JS 代码可以运行的环境 编写如下代码,其中涉及上述提及的文件。

<!DOCTYPE html><html>  <head>    <meta charset="UTF-8" />    <meta http-equiv="X-UA-Compatible" content="IE=edge" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>测试环境</title>    <script src="jsencrypt.min.js"></script>    <script>      function getQueryVariable(variable) {        var query = window.location.search.substring(1);        var vars = query.split("&");        for (var i = 0; i < vars.length; i++) {          var pair = vars[i].split("=");          if (pair[0] == variable) {            return pair[1];          }        }        return false;      }      pk = getQueryVariable("pk");      b64 = atob(pk);      (o = new JSEncrypt()).setPublicKey(b64);      aaa = o.encrypt("123456");      document.write(aaa);    </script>  </head>  <body></body></html>

然后可以用 selenium 进行调用,通过 URL 参数传递 pub_key 即可。

python+JS怎么实现逆向SMZDM登录加密

逻辑也非常简单,Python 调用接口生成 KEY,然后将 KEY 传递到我们自己构建的 JS 环境中,最后通过 Python 调用目标站点(自己搭建)的地址,获取加密值,然后进行传递。

读到这里,这篇“python+JS怎么实现逆向SMZDM登录加密”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

--结束END--

本文标题: python+JS怎么实现逆向SMZDM登录加密

本文链接: https://www.lsjlt.com/news/329614.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python+JS怎么实现逆向SMZDM登录加密
    本文小编为大家详细介绍“python+JS怎么实现逆向SMZDM登录加密”,内容详细,步骤清晰,细节处理妥当,希望这篇“python+JS怎么实现逆向SMZDM登录加密”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-30
  • python+JS 实现逆向 SMZDM 的登录加密
    目录实战场景参数分析实战场景 这次被我们盯上的平台是【SMZDM】。 本次目标站点是:aHR0cHM6Ly93d3cuc216ZG0uY29tLw==。 正式开始前,先注册一个账号,...
    99+
    2024-04-02
  • Python爬虫实战JS逆向AES逆向加密爬取
    目录爬取目标工具使用项目思路解析简易源码分享爬取目标 网址:监管平台 工具使用 开发工具:pycharm 开发环境:python3.7, Windows10 使用工具包:reque...
    99+
    2024-04-02
  • python爬虫实战steam加密逆向RSA登录解析
    目录采集目标工具准备项目思路解析 简易源码分享采集目标 网址:steam 工具准备 开发工具:pycharm 开发环境:python3.7, Windows10 使用工具...
    99+
    2024-04-02
  • JS逆向之爱奇艺滑块加密的实现
    目录前言一、页面分析二、分析1.分裂图片还原2.动态AESKey,HMacKey3.cryptSrcData加密4.返回数据解密总结文章仅供参考,禁止用于非法途径 前言 目标网站:a...
    99+
    2024-04-02
  • JS逆向中如何实现爱奇艺滑块加密
    小编给大家分享一下JS逆向中如何实现爱奇艺滑块加密,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、页面分析切换账密登入,抓包,登入接口有个passsword,r...
    99+
    2023-06-29
  • 使用JavaScript怎么实现逆向解密
    使用JavaScript怎么实现逆向解密,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1 引言数月前写过某网站(请原谅我的掩耳盗铃)的爬虫,这...
    99+
    2024-04-02
  • 【Python爬虫----加密解密】爬虫JS逆向时Python的加密解密,编码(MD5,AES,DES,RSA,base64,UrlEncode等)
    如果遇到问题可以留言,欢迎技术交流。交换意见 一,Python中运行JS代码 1-1  解决中文乱码或者报错问题 import subprocessfrom functools import partialsubprocess.Popen ...
    99+
    2023-10-11
    javascript 前端 开发语言
  • CentOS中怎么实现双向免密码登录
    CentOS中怎么实现双向免密码登录,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。原理:(这里两台机器以主机1、主机2表示,这里两台机器是对等的)若主机1想要免...
    99+
    2023-06-10
  • Java双重MD5加密怎么实现安全登录
    本篇内容主要讲解“Java双重MD5加密怎么实现安全登录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java双重MD5加密怎么实现安全登录”吧!一:问题引入对存储在数据库中的密码进行解密操作:...
    99+
    2023-07-02
  • JS逆向代码转换为Python代码怎么写
    这篇文章主要介绍“JS逆向代码转换为Python代码怎么写”,在日常操作中,相信很多人在JS逆向代码转换为Python代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS逆向代码转换为Python代码...
    99+
    2023-07-06
  • Python反向密码怎么实现
    这篇“Python反向密码怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python反向密码怎么实现”文章吧。反向密...
    99+
    2023-06-30
  • 怎么使用python+selenium实现扫码免密登录
    这篇文章主要介绍“怎么使用python+selenium实现扫码免密登录”,在日常操作中,相信很多人在怎么使用python+selenium实现扫码免密登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使...
    99+
    2023-07-02
  • python rsa加密解密怎么实现
    在Python中,可以使用`cryptography`库来实现RSA加密和解密。以下是一个示例: from cryptography...
    99+
    2023-10-26
    python
  • Java双重MD5加密实现安全登录
    目录一:问题引入二:解决方案2.1:第一次加密2.2:第二次加密三:代码实现3.1:第一次加密3.2:第二次加密一:问题引入 今天看到一篇文章说使用MD5对密码进行加密存储也还不能做...
    99+
    2024-04-02
  • Python怎么实现RSA加密解密
    这篇文章主要介绍了Python怎么实现RSA加密解密的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现RSA加密解密文章都会有所收获,下面我们一起来看看吧。一、安装模块pip inst...
    99+
    2023-06-30
  • Java​逆转单向链表怎么实现
    这篇文章主要讲解了“Java逆转单向链表怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java逆转单向链表怎么实现”吧!首先这是一个单向的链表,不同于 Java 里面的 Linked...
    99+
    2023-06-04
  • php怎么实现密码登录验证
    在PHP中,可以使用以下步骤来实现密码登录验证:1. 创建一个HTML表单,包含一个用户名输入框和一个密码输入框。用户输入用户名和密...
    99+
    2023-10-10
    php
  • Python干货实战之逆向登录世界上最大的游戏平台Stream
    目录前言采集目标工具准备项目思路解析简易源码分享大家好,我是辣条。 前言 今天带来爬虫实战的第30篇文章。在挑选游戏的过程中感受学习,让你突飞猛进。python爬虫实战:steam逆...
    99+
    2024-04-02
  • Python实现用户名和密码登录
    本文实例为大家分享了Python实现用户名和密码登录的具体代码,供大家参考,具体内容如下 功能 登录及注册,密码错误多次后验证码确认 说明 初次运行,程序将会自动生成一个名为user...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作