2012-01-12 83 views
0

我想了解爲什麼不能以表單POST參數注入sql語句。我用sqlmap嘗試過,手動沒有成功。post參數不可注射

有一個定義的函數:

function mysql_get_result($sQuery, $hSocket) //$sQuery: mysql query, 
              $hSocket:MySQLSocket(mysql_connect). 
{ 
$sResource = mysql_query($sQuery, $hSocket); 
list($sValue) = mysql_fetch_row($sResource); 
return $sValue; 
} 

,並沒有爲POST參數的實際查詢:

(mysql_get_result("SELECT place FROM towns 
WHERE place = '".$sR_place."' AND num = '".$iR_num."'", $hMySQLSocket) 
== $sR_place and $sR_place != '') 

無輸入sanitiazion可言。那爲什麼它不工作? SQL注入只有當它的mysql_query函數沒有更多的步驟時才能工作?

回答

1

由於您沒有用mysql_real_escape_string進行消毒或參數化查詢,因此您的代碼應該容易受到SQL注入的攻擊。

您應該嘗試修改您的POST參數,因爲問題很可能是您的攻擊格式不正確。 Try a variety of attacks