返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript逆向案例之如何破解登录密码
  • 744
分享到

JavaScript逆向案例之如何破解登录密码

2024-04-02 19:04:59 744人浏览 八月长安
摘要

由于之前做过12306的自动抢票软件,因此对12306情有独钟,接下来就给大家介绍一下12306用户登录密码的参数破解办法。 最近在学习js逆向方面的知识,由于之前做过12306的

由于之前做过12306的自动抢票软件,因此对12306情有独钟,接下来就给大家介绍一下12306用户登录密码的参数破解办法。

最近在学习js逆向方面的知识,由于之前做过12306的自动抢票软件,因此对12306情有独钟,接下来就给大家介绍一下12306用户登录密码的参数破解办法。

首先我们打开12306的登录界面,打开抓包工具,输入用户名和一个错误的密码(例:123456),点击登录按钮并滑动验证码进行验证,在ajax包中我们可以点击login这个包进入查看,我们可以发现passWord这个参数是进行了加密的,因此我们需要找到对应的加密js代码,分析出其加密的机制,并用python实现。

首先第一步点击开发者工具右上角的箭头指示位置,第二步找到 search 并点击,这时下面会弹出一个搜索框,第三步在搜索框内输入 password,第四步点击旁边的搜索按钮,这时含有 password 关键词的所有文件都在这里面,我们从上到下每个文件都点击进去寻找,看下 password 的加密算法在文件中的哪个位置。

经过查询分析,password 的加密算法在第二个文件中,我们找到对应的 JS 代码,并打上断点。

打上断点后,我们在此输入用户名和密码,点击登录,此时发现浏览器停在了该断点位置,

如下图所示:

此时我们仔细分析一下该行 JS 代码,发现最后生成的参数是"@"加上一个加密函数返回的结果组成,该函数的第一个参数很显然就是我们输入的明文密码(123456),第二个参数是我们的公钥,其是固定的为 SM4_key ="tiekeyuankp12306",因此我们可以最终封装一个JS函数,

代码如下:

function getpwd(p){
    var SM4_key = 'tiekeyuankp12306';
        return '@' + encrypt_ecb(p, SM4_key)
            }
console.log(getpwd('123456'))

此时我们需要找到 encrypt_ecb 这个函数的具体实现方式,我们将鼠标放在该函数的位置,并点击箭头指向的加密函数,我们发现进入到了一个加密函数文件,这里面全是加密算法。

经过分析,这里面有我们需要的具体的加密算法和解密算法,且该文件的代码只有300多行,因此我们可以将其全部抠出来,放入我们刚封装好的函数的上面中进行调试,运行该代码后,我们发现程序报错,提示:base64js未定义,因此实行缺什么补什么的原则补充关于base64js的有关代码部分。

此时我们继续按刚才方式搜索base64js部分,发现了一个文件名为base64js的,而且只有100多行代码,此时我们将其全部复制到刚才运行的代码最上面,再次运行,我们发现还是报错,提示:base64js未定义。

此时有小伙伴要问了,我都全部将base64js全部都放进来了,怎么还不行呢?其实base64js这个对象比较复杂,在我们抠出来的JS代码中是不能识别的。我们在仔细分析一下报错的地方,发现base64js的fromByteArray方法就是函数P,但是我们直接将其整个替换成P函数是不可行的,同样会报P函数未定义的错误。

此时在仔细分析,我们发现可以完全替换base64js这个玩意,首先我们将P函数复制到代码最上面,然后将代码中的base64js.fromByteArray(outArray)替换成P(outArray),运行提示l函数未定义,此时寻找l函数的部分复制到代码最上面,在次运行调试,根据程序的提示缺什么补什么的原则,进行相应的补充。

最后,补充完毕后的代码进行调试运行,结果如下:

将该JS代码打包成一个JS文件,利用Python的execjs包可运行js代码,直接调用JS文件中的getpwd函数即可,

python代码如下:

import execjs
f = open(r"test2.js", encoding='utf-8').read()
ctx = execjs.compile(f)
FuncName = 'getpwd'
password = ctx.call(FuncName, '123456')
print(password)

在进行JS逆向初学时,千万不要一味地抠代码,还是要学会分析JS代码,然后从简单开始练习,积累经验,慢慢以后在遇到加密参数的时候会越来越得心应手。

到此这篇关于javascript逆向案例之如何破解登录密码的文章就介绍到这了,更多相关JavaScript 破解密码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaScript逆向案例之如何破解登录密码

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

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

猜你喜欢
  • JavaScript逆向案例之如何破解登录密码
    由于之前做过12306的自动抢票软件,因此对12306情有独钟,接下来就给大家介绍一下12306用户登录密码的参数破解办法。 最近在学习JS逆向方面的知识,由于之前做过12306的...
    99+
    2024-04-02
  • JavaScript怎么破解登录密码
    本篇内容介绍了“JavaScript怎么破解登录密码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先我们打开12306的登录界面,打开抓包...
    99+
    2023-07-02
  • ubuntu登录密码如何破解
    这篇文章主要介绍“ubuntu登录密码如何破解”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ubuntu登录密码如何破解”文章能帮助大家解决问题。1:开机按Shift键,出现如下界面。(手速要快,S...
    99+
    2023-07-04
  • 安卓逆向案例分析之蝉妈妈sign破解
    目录前言1.抓包2. 定位分析2.1 package2.2 jadx-gui3. hook总结前言 蝉妈妈app v2.6.1 安卓逆向分析之sign破解 提示:以下是本篇文章正文内...
    99+
    2024-04-02
  • 如何破解Vista登陆密码
    如何破解Vista登陆密码?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。    请先将Vista安装盘放入光驱,重新启动计算机,在CMOS中进...
    99+
    2023-06-14
  • 如何破解MySQL5.7 数据库的root登录密码
    这期内容当中小编将会给大家带来有关如何破解MySQL5.7 数据库的root登录密码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。导读本文档详细介绍破解 MySQL5.7...
    99+
    2024-04-02
  • 如何破解MariaDB5.5数据库的root登录密码
    这篇文章将为大家详细讲解有关如何破解MariaDB5.5数据库的root登录密码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。[root@localhost...
    99+
    2024-04-02
  • Linux下如何破解MariaDB数据库的root登录密码
    这篇文章主要介绍Linux下如何破解MariaDB数据库的root登录密码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!忘记 root 登录密码[root@localhost ~]# mysql&...
    99+
    2023-06-28
  • 如何1分钟破解Vista 系统登录密码并直接登录Vista系统
    本篇文章给大家分享的是有关如何1分钟破解Vista 系统登录密码并直接登录Vista系统,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。做为系统管理员,如果忘记Vista登录密码...
    99+
    2023-06-14
  • windows忘记登录密码如何解决
    如果您忘记了Windows登录密码,有几种方法可以解决这个问题。1. 使用其他管理员账户登录:如果您有其他管理员账户,您可以使用该账...
    99+
    2023-09-01
    windows
  • centos忘记登录密码如何解决
    要解决CentOS忘记登录密码的问题,可以按照以下步骤重置密码:1. 重启CentOS系统,当系统启动时,按下键盘上的Shift键,...
    99+
    2023-08-26
    centos
  • 阿里云服务器如何备案登录账号密码
    首先,登录账号密码需要进行备案。如果您是第一次使用阿里云服务器,建议先进行备案,以便获得官方的认可。备案的步骤很简单,只需要准备好一些必要的材料,比如个人身份证、企业营业执照等。 接下来,登录账号密码就需要您自己进行设置了。在控制面板中,...
    99+
    2023-10-27
    阿里 账号 密码
  • mysql登录命令忘记密码如何解决
    mysql登录命令忘记密码的解决方法:快捷键win+r,输入cmd,打开命令提示符窗口,在命令行输入“net stop mysql”命令关闭mysql服务。在使用“--skip-grant-tables”选项启动mysql服务,在命令行输入...
    99+
    2024-04-02
  • linux输入密码无法登录如何解决
    当你在 Linux 系统中输入密码无法登录时,可能会有几个原因导致这个问题。以下是一些常见的解决方法:1. 确认密码是否正确:确保你...
    99+
    2023-10-09
    linux
  • win11开机登录密码忘了如何解决
    今天小编给大家分享一下win11开机登录密码忘了如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。方法一: 1、如果用户...
    99+
    2023-07-01
  • 云服务器登录密码忘了如何解决
    如果您忘记了云服务器的登录密码,有几种解决方法:1. 重置密码:根据云服务提供商的不同,可以通过控制台、命令行工具或 API 来重置...
    99+
    2023-09-27
    云服务器
  • win10更新后密码登录不了如何解决
    如果您在Windows 10更新后无法使用密码登录,可能是由于更新过程中出现了问题或者更新后的设置发生了变化。以下是一些可能的解决方...
    99+
    2023-09-20
    win10
  • win11系统息屏后密码登录如何解决
    本篇内容主要讲解“win11系统息屏后密码登录如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win11系统息屏后密码登录如何解决”吧!首先右击下方的任务栏然后进入设置功能。 然后就可以点...
    99+
    2023-07-01
  • 如何解除华为云服务器登录密码?
    1. 重置密码 如果你忘记了华为云服务器的登录密码,可以通过以下步骤重置密码: 打开华为云官方网站,并登录你的账号。 在控制台中找到云服务器的管理页面。 在服务器列表中选择需要重置密码的服务器,并点击进入服务器详情页。 在详情页的操作栏...
    99+
    2023-10-27
    华为 密码 服务器
  • 阿里云服务器如何备案登录账号密码忘了
    1. 找回阿里云服务器备案登录账号密码的方法 如果你忘记了阿里云服务器备案登录账号密码,可以按照以下步骤进行找回: 1.1 通过阿里云官方网站找回密码 打开阿里云官方网站(https://www.aliyun.com/)。 点击右上角的...
    99+
    2023-10-27
    阿里 账号 密码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作