0
我是SQL注入領域的初學者,如果能幫助我,我會很高興。SQLi查詢說明
場景:易受攻擊的web應用程序。
假設你有一個這樣的URL:
http://www.site1.com/cms/login.php
另外,假定以訪問您必須提供以下憑證的網站:
用戶名:FOO,密碼:酒吧
因此,上面的URL變成:
http://www.site.com/cms/login.php?username=foo&password=bar
如果再注入有效載荷'OR'1'='1
它更改爲:
http://www.site.com/cms/login.php?username=foo&password=bar'OR'1'='1
這就足夠清楚,我,但我擔心的是,有人告訴我,對應的 SQL查詢(一送經處理後端RDBMS)應爲:
SELECT userid
FROM CMSUsers
WHERE user = 'foo'AND password = 'bar' OR'1'='1';
查詢是同義反復,因爲'1'='1'
始終爲TRUE。
但有效載荷是'OR'1'='1
和查詢的條件語句似乎是不同OR'1'='1';
(看'
,有有效載荷中的最後1之後沒有口音)
是我的懷疑明智?
任何幫助將不勝感激。
感謝傳遞期待你的答覆..所以你說如果在Web應用程序的地址欄中輸入'OR'1'='1',這意味着:http://www.site.com/cms/login.php?username=foo&password=bar 'OR'1'='1'(在右邊的最後一位後面加上引號)我是否說查詢不會被執行?對不起,但我仍然不明白爲什麼確切的有效負載'OR'1'='1不完全是發送到DBMS的底層SQL查詢的一部分。謝謝了很多 – poi741
@ poi741:請再次閱讀我的答案。完整的有效載荷是查詢的一部分:有效載荷:** bar'OR'1'='1 **,查詢:... AND password ='** bar'OR'1'='1 **'; –
我很抱歉..你是對的。事實上,我想指出的是,另一個報價是SQL查詢的一部分,但這是由於硬編碼的原因,我的意思是爲了在語法上正確的應用程序添加額外報價'還有;是對的嗎? – poi741