2017-03-22 59 views
0

我想通過嘗試刪除一個表(用戶)並且它不工作來測試對我的網站的SQL注入。測試SQL注入/丟棄表不工作

我的SQL字符串語法:

String sql = "select * from users where username='" + username + "' and password='" + password + "';"; 

我把在用戶名字段jacktest'; DROP TABLE users; --在密碼字段,並得到如下SQL字符串:

select * from users where username='jack' and password='test'; DROP TABLE users; --'; 然後我執行:

Statement st = conn.createStatement(); 
ResultSet rs = st.executeQuery(sql); 

但它不工作,任何想法爲什麼?

+0

這並不是說我有什麼經驗的黑客/欺騙數據庫,但什麼是' - ''在查詢到底在幹什麼? iniection看起來很好,直到「DROP TABLE」。 –

+0

@TimBiegeleisen這是SQL的註釋操作符,我認爲他/她使用了它,所以最後的字符不會產生語法錯誤。順便說一下,不工作,它會產生錯誤,還是隻是執行,但不刪除表? – encryptoferia

+0

@TimBiegeleisen我很抱歉。我再次檢查,看起來不錯,Rlaw你的意思是沒有工作?也許你錯過了錯誤? –

回答

1

密碼應該是:

' OR 1=1; DROP TABLE users; -- 
  1. '將關閉密碼字符串
  2. 1=1將確保你找到了一個結果。

    我犯了一個錯誤:

  3. --將從

編輯以前的密碼發表意見的最後'。正在考慮一個不同的黑客。 1=1將跳過通行字檢查並通過登錄屏幕。

你只需要關閉密碼字符串

'; DROP TABLE users; -- 

enter image description here