ORA-00923: FROM keyword not found where expected is how would be vulnerable to SQL Injection?

How would a ORA-00923: FROM keyword not found where expected be vulnerable to SQL Injection?

假设我有一个网络应用程序。我不知道后端。我提交了一些表格,最后收到一条错误消息。

它指出:

ORA--0923: FROM keyword not found where expected.

所以,我们知道这意味着开发人员编写了类似于以下内容的程序:

SELECT *

employees;

缺少 from 关键字,或者不在预期位置。

现在您有了查询

SELECT * employees;

理论上你会如何注入这个?

要使 sql 注入成为可能,查询必须具有从 Web 界面传递给它的参数或绑定变量。如果没有任何参数,此查询在语法上是不正确的。此查询可能涉及 sql 注入场景的唯一方式是 Web 应用程序接受整个查询然后执行它。

假设数据库正在尝试执行像

这样的简单语句
select 'smith' from dual;

开发人员没有使用绑定变量,而是将字符串 'smith'(带引号)连接成一个语句

黑客随后尝试使用其中包含单引号的名称

select 'o'reilly' from dual;

这会导致应用程序出错

ORA-01756: quoted string not properly terminated

然后他们尝试将字符串 ' where 1=1' 转换为语句

select '' where 1=1'' from dual;

哪些错误

ORA-00923: FROM keyword not found where expected

还有其他关键字(例如 ORDER BY)会产生相同的错误,因此您可能偶然发现了一个。

一般来说,这对于错误报告来说应该足够了。