数据库UDF提权和远程连接数据库反弹shell

最近在进行数据库UDF提权实验,记录一下遇到的问题
攻击机:kali,win10
靶机:win2003
数据库:mysql
UDF
UDF指的是用户自定义函数,用户可以自定义函数来对数据库进行扩展,丰富数据库的功能
UDF提权前提条件
1,secure_file_priv这个选项需要为空值
secure_file_priv这个参数用来限制数据导入和导出操作。如果secure_file_priv的值为空,则该参数没有效果,如果值为某个目录,则只能在该目录执行数据的导入和导出。如果值为NULL,则禁止数据导入和导出
在这里插入图片描述
具体设置:在my.ini文件的secure_file_priv选项改为secure_file_priv=,没有这个选项则增加,然后重启数据库
在这里插入图片描述
2,修改root用户允许远程连接
update user set host = ‘%’ where user = ‘root’;
3,当 MySQL< 5.1 版本时,将 .dll 文件导入到 c:\windows 或者 c:\windows\system32 目录下。
4,当 MySQL> 5.1 版本时,将 .dll 文件导入到 MySQL Server 5.xx\lib\plugin 目录下 (lib\plugin目录默认不存在,需自行创建)。

遇到的问题
在实验的过程中我遇到一个问题:
Access denied for user ‘’@‘localhost’ to database ‘mysql’
解决方法(来源:https://zhidao.baidu.com/question/73025161.html):
1,停止mysql
net stop mysql
2.屏蔽权限
mysqld_safe --skip-grant-table
3.打开新终端,然后输入
(1) mysql -u root -p
(2)UPDATE mysql.user SET Grant_priv=‘Y’, Super_priv=‘Y’ WHERE User=‘root’;
(3)FLUSH PRIVILEGES;
(4)GRANT ALL ON . TO ‘root’@‘localhost’;
(5)select * from mysql.user\G (localhost下的root用户权限为Y)
进行UDF提权
打开kali,进入msf,加载exploit/multi/mysql/mysql_udf_payload模块
设置远程主机,数据库账户和密码
在这里插入图片描述
然后执行:
在这里插入图片描述
这表明我们可以使用sys_exec()这个函数,当系统命令执行成功时,结果为0,失败时为1,。
结果测试
在这里插入图片描述
用sqlyog连接数据库,创建 sys_eval()函数,该函数能回显命令执行的内容
在这里插入图片描述
结果测试:
payload:
id= -1’ union select 1,2,group_concat(sys_eval(‘ipconfig’)) --+在这里插入图片描述

当网站存在SQL注入漏洞时,在错误注入时可能会爆出网页所在目录,这时我们就可以写入一句话木马。我这里的是xampp集成平台
在这里插入图片描述
写入一句话木马

在这里插入图片描述
然后菜刀连接
在这里插入图片描述
用meterpreter模块来反弹shell
设置本地IP,端口,payload
在这里插入图片描述
将木马用菜刀上传,然后执行,成功反弹shell

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值