post参数不可注射

时间:2012-01-12 13:16:54

标签: sql forms code-injection

我想了解为什么不能以POST参数的形式注入sql语句。我用sqlmap尝试了它并且手动没有成功。

有一个定义的功能:

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 个答案:

答案 0 :(得分:1)

您的代码应该容易受到SQL注入攻击,因为您没有使用mysql_real_escape_string进行清理,或者参数化查询。

您应该尝试修改POST参数,因为问题很可能是您的攻击格式不正确。 Try a variety of attacks