SQL注入DROP TABLE不起作用
我需要使用PHP / MySQL演示SQL Inject。 我想在登录表单中注入一个DROP TABLE查询,但它永远不会工作。 (TRUNCATE表工作正常OTOH)。 在我输入'; drop table users; #
'; drop table users; #
'; drop table users; #
作为字段输入; 查询结果是
SELECT * FROM `users` WHERE `email` = ''; DROP TABLE users; #' AND `password` LIKE '3232';
但它永远不会使用mysql_query()函数。 当我直接将此查询复制/粘贴到PHPmyAdmin中时,它可以很好地工作,并且表被删除。 可能是什么问题?
这在php / MySQL中是不可能的,因为php不支持堆栈查询。 你注入分号(;)的那一刻就会失败。
虽然你可以在php-mysql应用程序中使用sql注入来做很多其他更有创意的攻击。
检出SQL-Map。
默认情况下不启用MULTIPLE SQL执行。
所以SQL注入类似;drop table
将不起作用。 请启用多个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
。