我试图通过PHP使用SQL注入在数据库中删除一个表。
PHP代码使用以下命令和multi_query($sql)向数据库提交表单:
$sql = "INSERT INTO Student (StdNumber, FName, LName, DOB, PhoneNumber)
VALUES ('$input1', '$input2', '$input3', '$input4', '$input5')";所以我想,我可以用SQL注入input5。所以我用:
');"; $sql .= "DROP TABLE IF EXISTS Student;";-- -这将关闭前面的sql语句,然后用'sql .=‘启动另一个语句,然后用
然而,桌子并没有掉下来。我没有看到我的注入命令在数据库中的input5 (PhoneNumber)中,因此它成功地关闭了我相信的前面的语句。
所以我不知道出了什么问题,我是不是不正确地使用了multi_query?还是我的注射不正确?
谢谢
编辑1:此外,当我提交表单时,它会接受它,并将另一个条目输入数据库。
发布于 2017-09-25 07:32:37
您正在尝试操作由php生成的sql,而不是php本身。
因此,您不应该在第五个输入中添加php:
');"; $sql .= "DROP TABLE IF EXISTS Student;";-- -应该是这样的:
1234567890'); DROP TABLE IF EXISTS Student; -- the rest here will be comments in sqlhttps://stackoverflow.com/questions/46399656
复制相似问题