我想了解为什么不能以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函数没有更多步骤时才能工作吗?
答案 0 :(得分:1)
您的代码应该容易受到SQL注入攻击,因为您没有使用mysql_real_escape_string
进行清理,或者参数化查询。
您应该尝试修改POST参数,因为问题很可能是您的攻击格式不正确。 Try a variety of attacks