Buonasera a tutti,
sto facendo dei test di SQL Injection su un architettura LAMP di test che ho creato su una macchina virtuale.
Ho creato il seguente script PHP ( chiamato phptest_dinamicquery.php ) che effettua una query dinamica a un database MariaDB presente in locale:
<html>
<head>
</head>
<body>
<?php
$dbhostname='localhost';
$dbuser='root';
$dbpassword='pass';
$dbname='test';
$id= $argv[1];
//$id=$_GET['id'];
$connection=mysqli_connect($dbhostname,$dbuser,$dbpassword,$dbname);
$query="SELECT name,value FROM prg_config WHERE id LIKE '$id';";
$results=mysqli_query($connection, $query);
if (!$results) {
printf("Error: %s\n", mysqli_error($connection));
exit();
}
while($row = mysqli_fetch_array($results, MYSQLI_NUM))
{
echo $row[0] . "<br>";
echo $row[1] . "<br>";
}
?>
</body>
</html>
quello che mi stavo chiedendo era come mai se richiamo lo script da console con il seguente comando:
php phptest_dinamicquery.php "2'; --"
mi viene ritornato questo errore:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '--'' at line 1
mentre invece se effettuo la query da dentro il DBMS MariaDB la stessa query ha successo:
MariaDB [test]> select name,value from prg_config where id like '2'; --'
+-------+---------+
| name | value |
+-------+---------+
| nome2 | valore2 |
+-------+---------+
1 row in set (0.07 sec)
Qualcuno mi sa aiutare?è tutto il pomeriggio che ci sbatto la testa...
Grazie!!