先决条件– 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附近使用正确的语法。
解释 –
一般错误消息。先前列出的错误消息均优先,因此其他地方出了问题。您很可能可以尝试其他输入并获得更有意义的消息。