2017-09-25 59 views
1

我想通过PHP使用SQL注入来删除数据库中的表。SQL注入使用PHP multi_query到DROP TABLE

的PHP代码提交表单到数据库使用下面的命令和multi_query($ SQL):

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

所以我想,我可以SQL进样输入5。于是我就用:

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

这将关闭一个SQL语句,然后我开始用另一份声明,然后我评论过它的其余部分与 - -

但是表“不是个SQL =”。不会下降。我没有在数据库的input5(PhoneNumber)中看到我的注入命令,所以它成功地关闭了我相信的前面的语句。

所以我不知道什么是错的,我不正确地使用multi_query?或者是我的注射不正确?

谢谢

编辑1: 此外,当我提交表单它接受它,并让其他进入数据库。

+0

需要像: - '$ SQL =“INSERT INTO学生(StdNumber, FName,LName,DOB,PhoneNumber) VALUES('$ input1','$ input2','$ input3','$ input4','$ input5')“; $ sql。=“DROP TABLE IF EXISTS Student;”;'然后使用'multi_query' –

+0

是不是我现在正在做的活着死? – Bartholomas

回答

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 
+0

谢谢!所以我得到SQL如下:INSERT INTO Student(StdNumber,FName,LName,DOB,PhoneNumber)VALUES('','','','',''); DROP TABLE IF EXISTS学生; - ') – Bartholomas

+0

@Bartholomas确切地说,我只是添加了一个电话号码和一些评论来说明。 – jeroen

+0

但它仍然不会删除数据库中的表。这可能与multi_query($ sql)有关吗? – Bartholomas