2016-10-10 28 views
0

所以我正在做一個小的SQL注入的挑戰,因爲我想了解它,我有一個問題。 I型'hi'到HTML表單中,我把它恢復爲響應與工會的SQL注入

Error: The following error occurred: [near "hi": syntax error] 

Query: SELECT * FROM personnel WHERE name=''hi'' 

我們需要讓位於一個表中的信息被稱爲用戶。我在看sql,我在這裏看到結合2+選擇語句的結果的聯合運算符。

所以,我嘗試這個輸入:1 UNION SELECT * FROM users,我沒有得到任何迴應,因此它看起來像從表格中搜索人員的姓名。我認爲這將工作,因爲查詢將如下所示:SELECT * FROM personnel WHERE name=1 UNION SELECT * FROM users。難道我不理解工會運營商如何工作或者是別的錯誤的,我輸入

回答

0

這一個:

set @hi = "'hi'"; 
select @hi; 

SELECT * FROM personnel WHERE name="'hi'" 

模擬:

insert into personnel (`name`) values("'hi'"); 
insert into personnel (`name`) values("'hello'"); 
select * from personnel where `name` != "'hi'" 
0
-- you can't use a double '' in sql query 
Query: SELECT * FROM personnel WHERE name='hi' 
+0

我知道我用雙引號來查看他們的SQL語句是什麼,並檢查他們是否過濾了任何注入。 – user2747058

0

也許SQL是無效的,因爲personnelusers有不同的形狀。您需要注入與初始select相同的內容。

如果您有參數化查詢而不是連接到SQL,那麼您的整個問題也會消失。

+0

好的,謝謝。 – user2747058