-3

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

它指出:

ORA--0923: 在预期的地方找不到 FROM 关键字。

因此,我们知道这意味着开发人员编写了类似于以下内容的代码:

SELECT *

employees;

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

所以现在你有了查询

SELECT * employees;

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

4

2 回答 2

2

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

于 2019-05-02T23:21:34.933 回答
1

假设数据库正在尝试执行一个简单的语句,例如

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)会给出相同的错误,因此您可能偶然发现了一个。

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

于 2019-05-02T23:30:24.630 回答