7. 网易web安全渗透, sql漏洞之二次编码注入

二次编码注入原理

为什么要进行编码,有点应为原始的格式并不适合传输
比如

+  =  &  ;

要是上面的这个符号在http传输中会和原始的有冲突

原理
7. 网易web安全渗透, sql漏洞之二次编码注入_第1张图片
urlencode()函数就是URL编码的


$str = "%25";
echo 'urlencode($str);
?>

结果等于

%

上面的%25url解码后就是%
7. 网易web安全渗透, sql漏洞之二次编码注入_第2张图片

%27就是'
7. 网易web安全渗透, sql漏洞之二次编码注入_第3张图片

实战

实验环境搭建

应为没有实验环境我就自己写了一个
a.php文件
代码

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title></title>
</head>
<body>

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title></title>
</head>
<body>


	$id=addslashes($_GET['id']);
	$s = "127.0.0.1";
	$u= "root";
	$p = "123456";

	// 创建连接
	$conn = mysqli_connect($s, $u, $p);	 
	// 检测连接
	if (!$conn) {
	    die("连接失败: " . mysqli_connect_error());
	}



	

	$id=urldecode($id);

	
	mysqli_select_db($conn,'security');
	$a="SELECT * FROM users WHERE id='$id'";
	echo 'sql执行的语句: '.$a.'
'
; $b=mysqli_query($conn,$a); echo '输出结果:'; $DuQu=mysqli_fetch_assoc($b); if ($DuQu) { echo "\"".$DuQu['username']."\"".$DuQu['password']."
"
; } mysqli_close($conn); ?> </body> </html>

输入?id=1
结果
7. 网易web安全渗透, sql漏洞之二次编码注入_第4张图片

二次编码进行注入

发现漏洞

输入URL:?id=1'
结果被转意了
7. 网易web安全渗透, sql漏洞之二次编码注入_第5张图片
我们在进行宽字节注入
还是不行
7. 网易web安全渗透, sql漏洞之二次编码注入_第6张图片
我们就可以用二次编码注入进行注入了
URL地址http://192.168.0.105/a.php?id=1%2527
发现叫\给去掉了
是存在sql注入漏洞的
7. 网易web安全渗透, sql漏洞之二次编码注入_第7张图片

进行数据读取

  1. 判断有几列
    URL地址http://192.168.0.105/a.php?id=1%2527 order by 3 --+
    显示正常
    7. 网易web安全渗透, sql漏洞之二次编码注入_第8张图片
    URL地址http://192.168.0.105/a.php?id=1%2527 order by 4 --+
    报错
    7. 网易web安全渗透, sql漏洞之二次编码注入_第9张图片
    等等等等等等等等等等等等等等就不演示了

你可能感兴趣的:(sql注入,sql注入漏洞)