2017-09-25 138 views
1

我想通過PHP使用SQL注入來刪除數據庫中的表。SQL注入使用PHP multi_query到DROP TABLE

的PHP代碼提交表單到數據庫使用下面的命令和multi_query($ SQL):

$sql = "INSERT INTO Student (StdNumber, FName, LName, DOB, PhoneNumber) 
VALUES ('$input1', '$input2', '$input3', '$input4', '$input5')"; 

所以我想,我可以SQL進樣輸入5。於是我就用:

');"; $sql .= "DROP TABLE IF EXISTS Student;";-- - 

這將關閉一個SQL語句,然後我開始用另一份聲明,然後我評論過它的其餘部分與 - -

但是表「不是個SQL =」。不會下降。我沒有在數據庫的input5(PhoneNumber)中看到我的注入命令,所以它成功地關閉了我相信的前面的語句。

所以我不知道什麼是錯的,我不正確地使用multi_query?或者是我的注射不正確?

謝謝

編輯1: 此外,當我提交表單它接受它,並讓其他進入數據庫。

+0

需要像: - '$ SQL =「INSERT INTO學生(StdNumber, FName,LName,DOB,PhoneNumber) VALUES('$ input1','$ input2','$ input3','$ input4','$ input5')「; $ sql。=「DROP TABLE IF EXISTS Student;」;'然後使用'multi_query' –

+0

是不是我現在正在做的活着死? – Bartholomas

回答

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 
+0

謝謝!所以我得到SQL如下:INSERT INTO Student(StdNumber,FName,LName,DOB,PhoneNumber)VALUES('','','','',''); DROP TABLE IF EXISTS學生; - ') – Bartholomas

+0

@Bartholomas確切地說,我只是添加了一個電話號碼和一些評論來說明。 – jeroen

+0

但它仍然不會刪除數據庫中的表。這可能與multi_query($ sql)有關嗎? – Bartholomas