2017-09-28 116 views
-1

所以我正在做一个任务,并作为其中的一部分,执行一个SQL注入我名为测试,从一个表格用于输入表中名为学生。SQL注入语法错误试图删除表

我一直在试图

'; 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

它失败了,因为INSERT值的其余部分在您的示例中已被注释掉。预计有七个值,但只提供了两个值。 此外,结尾支架)缺失。
由于INSERT失败,DROP也不会执行。

这应该工作:

', '', '', '', '', ''); DROP TABLE test; -- 
+0

谢谢你解决了它 – nwalmaer

0
INSERT INTO student (student_id, first_name, last_name, DOB, sex, phone, user_id) 
VALUES ('nhdb', ''; DROP TABLE test; -- ', '', '', '', '', 'u01') 

这是因为你:

  1. 缺少一个右括号'nhdb, ''
  2. 试图在一个查询执行两个语句之后,和一个其中一个DDL语句,而不是查询
  3. 缺少0中的5个参数条款。
  4. 试图将一条DROP语句插入到INSERT语句的中间。

这甚至没有开始有效的SQL。