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)会产生相同的错误,因此您可能偶然发现了一个。
一般来说,这对于错误报告来说应该足够了。
假设我有一个网络应用程序。我不知道后端。我提交了一些表格,最后收到一条错误消息。
它指出:
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)会产生相同的错误,因此您可能偶然发现了一个。
一般来说,这对于错误报告来说应该足够了。