[英]SQL Injection don't work
我正在檢查我的網頁上是否有SQL注入,但是當主頁沒有響應時,我創建了一個測試腳本:
<?
$a = $_POST["a"];
$username="...";
$password="...";
$database="...";
mysql_connect ('...',$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$ress=mysql_query("SELECT username FROM userinfo WHERE id='$a'");
$row = mysql_fetch_array($ress);
print $row[0];
?>
<form name="form" action="hackMe.php" method="POST">
<input id="a" name="a" size="150">
<input name="Submit" type="submit" value="Submit">
</form>
但是當我嘗試這一行時:
'; UPDATE userinfo SET email = 'steve@unixwiz.net' WHERE email = 'testusr@gmail.com
我只是收到一個錯誤,並且數據庫中沒有任何更改。
有什么想法嗎?
引用手冊 :
mysql_query()向與指定關聯的服務器上的當前活動數據庫發送一個唯一查詢( 不支持多個查詢 )
由我突出。 mysql_query()
僅允許每個調用一個查詢查詢,第二個查詢僅次於;
被忽略。
要測試SQL注入,您必須使用不需要第二個傷害的查詢。
編輯:
可以允許多個查詢,但是您必須在mysql_connect()
調用中明確聲明它。
mysql_connect($host, $username, $password, false, 65536);
// defined by MySQL:
// #define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.