輸入將來自Web表單,並且我嘗試通過表單進行SQL注入。在密碼字段中,我試圖只用一個單引號來查看後端調用什麼類型的錯誤。我手動在後端運行此相同的查詢 -爲什麼這個MySQL查詢溢出到下一行
mysql> UPDATE users SET password = ''' WHERE username='admin';
據我所知,有在單引號不匹配,但我只是想看到查詢行爲在後端。
但是查詢不會立即運行。它溢出到下一行,好像它正在等待更多的輸入。
mysql> UPDATE users SET password = ''' WHERE username='admin'; '> '; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'admin'; '' at line 1
爲什麼會溢出到第二行?爲什麼不能只是說一些接近「語法錯誤附近密碼」
它正在等待更多輸入。你總共有5個單引號 - 所以mysql認爲你在字符串中間。如果您從非交互式客戶端執行此查詢,您_將獲得語法錯誤 –
如上所述,控制檯認爲該字符串尚未關閉,客戶端也沒有以分號結束語句。 – Lucas
@ pala_如果您希望將其更改爲答案,我會接受此答案。 – user1720897