[root@kvm8 ~]# cd /var/www/html
[root@kvm8 html]# vim injection.php
[root@kvm8 html]# cat injection.php
<?php
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '123qwe';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error().PHP_EOL);
if (preg_match("/^\w{4,20}$/", $_GET['user'], $matches)){
$sql = "SELECT host,user FROM user WHERE user='{$matches[0]}'";
mysql_select_db('mysql');
$retval = mysql_query( $sql, $conn );
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
echo "HOST: {$row[0]}<br>User: {$row[1]}<br> ".
"--------------------------------<br>";
}
} else {
echo "user not accepted";
}
?>
?user=abc,回應 "user not accepted"。
?user='a' or 1,過濾字元後一樣回應 "user not accepted"。
?user=dywang,查詢結果列出 host 及 user。
?user=1234567890,字串符合要求,但資料庫中無此紀錄。
?user=12345678901234567890AA,字串超過 20 個字,回應 "user not accepted"。