1

我正在尝试通过 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:此外,当我提交表单时,它接受它并再次进入数据库。

4

1 回答 1

2

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

所以你不应该将 php 添加到你的第 5 个输入中:

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

应该是这样的:

1234567890'); DROP TABLE IF EXISTS Student; -- the rest here will be comments in sql
于 2017-09-25T07:32:37.680 回答