Я тестировал свое приложение для SQL-инъекций атак, вот исходный код:
<?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";}
?>
и URL-адрес, как это:
http://localhost:8080/sqli-labs-master/Less-1/?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
, поэтому, когда я хочу извлечь имя столбца с помощью HAVING AND GROUP BY , это не работает.я пытаюсь это:
http://localhost:8080/sqli-labs-master/Less-1/?id=1' HAVING 1=1 -- -
и ничего не происходит.так почему я не могу получить имена столбцов через HAVING и внедрение на основе ошибок ...