我在这里找到了一个非常有趣的蜜罐示例。
http://www.sharjeel.2scomplement.com/sql-injection-honeypots
它根本不使用 SQL 或任何 SQL 服务器,而只是这个 php 代码:
// SQL Injection 'TEST'
if( strpos($username,"'") !== false || strpos($password,"'") !== false )
{
$sqlInjectionError = "
<p><font size=2>Microsoft ODBC MySQL Drivers Message:</font></p>
<p><B>Error in the query:</B></p>
<p>[Microsoft:ODBC 1045] SELECT UlluKaPatha FROM UlluKePathay WHERE
GadhayKaRollNo = '".$_POST['username']."'
AND GadhayKaPassword = '".$_POST['password']."'
";
}
// End SQL Injection 'TEST'
例如,如果有人提供了用户名admin
和密码x' OR '1'='1
,他得到了回应:
Microsoft ODBC MySQL 驱动程序消息:
查询错误:[Microsoft:ODBC 1045] SELECT UlluKaPatha FROM UlluKePathay WHERE GadhayKaRollNo = 'admin' AND GadhayKaPassword = 'x' OR '1'='1'
如果您将输入(以安全方式)记录到数据库中,它可能会生成有趣的统计信息,说明在不安全的系统上使用了哪些攻击。