我有一個關於註釋sql查詢的問題。 SQL查詢具有形成$query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";
所以我嘗試1' or 1=1; #
,我讓所有的用戶和密碼如我所料,但是當我使用--
上發表評論,而不是#
我得到一個語法錯誤。爲什麼會發生?
你能解釋一下在每種情況下sql是如何形成的?
另外我注意到1' or 1=1 #
也可以。 #符號不會註釋掉; ?DVWA sql注入
0
A
回答
2
正如你在讀mysql manual:
在MySQL中, - (雙破折號)註釋風格要求的第二個短線應遵循由至少一個空格或控制字符(如空格,製表符,換行符,等等)
當添加僅--
到您輸入...有以下沒有空格或控制字符。你合成的查詢將看起來像:
SELECT first_name, last_name FROM users WHERE user_id = '1' or 1=1--';
正如你可以看到,雙破折號立即由;
,因爲它不被視爲一個評論,這導致一個語法錯誤,隨後。
嘗試結束
投入--
(後面有個空格)對於;
:這是沒有必要在向服務器發出一個查詢。這是只有來分隔不同的陳述,但是根本不需要單個陳述。
mysql命令行客戶端不會將該字符發送到服務器,而是將其視爲「執行指令」。
相關問題
- 1. DVWA SQL注入不工作
- 2. 命令注入DVWA硬難題
- 3. DVWA 1.8 - SQL注入 - 更改用戶密碼
- 4. DVWA登錄錯誤
- 5. SQL注入插入
- 6. SQL注入
- 7. SQL注入mysql_real_escape_string
- 8. Hibernate SQL注入
- 9. TableAdapters SQL注入
- 10. SQL Server注入
- 11. EJB3 SQL注入
- 12. Rails SQL注入?
- 13. SQL注入vulnerablities
- 14. php sql注入
- 15. SQLAlchemy + SQL注入
- 16. SQL注入bwapp
- 17. SQL注入法
- 18. JPA SQL注入
- 19. PHP - SQL注入
- 20. SQL注入
- 21. DocumentDB Sql注入?
- 22. SQL注入2.0
- 23. Sql注入group_concat
- 24. 盲SQL注入
- 25. 笨SQL注入
- 26. mysqli_stmt_bind_param SQL注入
- 27. MSAccess SQL注入
- 28. SQL注入的OData關注
- 29. DVWA 1.9安裝錯誤
- 30. Linq到SQL和SQL注入