2017-09-28 229 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。