📜  SQL 错误消息

📅  最后修改于: 2021-09-09 10:50:09             🧑  作者: Mango

先决条件——SQL注入
在检查 SQL 注入时,我们都会发现各种错误消息。让我们找出每个错误背后的基本原因以及它在 MySQL 中的显示方式。以下是各种错误及其解释。

错误 1:
您的 SQL 语法有错误。检查与您的 MySQL 服务器版本相对应的手册,以获取在 X 行“foo”附近使用的正确语法。

解释 –
如果您输入了单引号并且它改变了数据库查询的语法,这就是预期的错误消息。对于 MySQL,可能存在 SQL 注入,但在其他上下文中可能会出现相同的错误消息。

错误 2:
不适用

解释 –
您已注释掉或删除了通常会提供给数据库的变量。

错误 3:
使用的 SELECT 语句具有不同的列数。

解释 –
当您尝试 UNION SELECT 攻击并且您指定的列数与原始 SELECT 语句中的数字不同时,您将看到这一点。

错误 4:
您的 SQL 语法有错误。检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行的“XXX, YYY from SOME_TABLE”附近使用的正确语法

解释 –
当您的注入点出现在 FROM 关键字之前(例如,您已注入要返回的列)并且您已使用注释字符删除所需的 SQL 关键字时,您通常会看到此错误消息。尝试在使用注释字符的同时自己完成 SQL 语句。当遇到这种情况时,MySQL 应该有助于显示列名 XXX、YYY。

错误 5:
表“DBNAME.SOMETABLE”不存在。

解释 –
您正在尝试访问不存在的表或视图。针对您知道可以访问的表测试您的查询。当遇到这种情况时,MySQL 应该有助于揭示当前的数据库模式 DBNAME。

错误 6:
您的 SQL 语法有错误。检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行的“ ”附近使用的正确语法。

解释 –
您可能正在更改 WHERE 子句中的某些内容,并且您的 SQL 注入尝试破坏了语法。

错误 7:
您的 SQL 语法有错误。检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行附近使用的正确语法。

解释 –
您的 SQL 注入尝试已成功,但注入点在括号内。您可能用注入的注释字符(-) 注释掉了右括号。

错误 8:
您的 SQL 语法有错误。检查与您的 MySQL 服务器版本相对应的手册,了解在 XXXXX 附近使用的正确语法。

解释 –
一般错误消息。前面列出的错误消息都优先,所以出现了其他错误。您很可能可以尝试替代输入并获得更有意义的信息。