我需要使用PHP / MySQL演示SQL Inject。我想在登录表单中注入DROP TABLE查询但它永远不会工作。 (TRUNCATE表工作正常OTOH)。
输入'; drop table users; #
作为字段输入后;查询结果是
SELECT * FROM `users` WHERE `email` = ''; DROP TABLE users; #' AND `password` LIKE '3232';
但它永远不会使用mysql_query()函数。当我直接在PHPmyAdmin中复制/粘贴此查询时,它完美地工作并且表被删除。可能是什么问题?
答案 0 :(得分:3)
默认情况下不启用多个SQL执行。
所以像;drop table
这样的SQL注入不起作用。请启用多个sql执行。如果你使用mysqli,可以像http://php.net/manual/en/mysqli.quickstart.multiple-statement.php一样启用它。
有用的SQL注入是:
SELECT COUNT(*) FROM users
WHERE user_id = '$user_id' AND passwd = '$passwd'
用户将passwd
插入' || '1' = '1
。
答案 1 :(得分:1)
这在php / MySQL中是不可能的,因为php不支持堆叠查询。注入分号(;)的那一刻它就会失败。
你可以在php-mysql应用程序中使用sql注入做更多其他更有创意的攻击。</ p>
检查SQL-Map。