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