2012-01-12 79 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