2017-09-28 6 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조차 시작되지 않습니다.