Oracle Sql - 基于时间的 sql 注入

Oracle Sql - Time based sql injection

提问人:MenNotAtWork 提问时间:5/15/2020 最后编辑:MenNotAtWork 更新时间:5/16/2020 访问量:2903

问:

尝试在Oracle SQL数据库上进行SQL注入时,我遇到了一个问题,即教程中的大多数示例都不起作用。我已经发现我只能使用代替普通的 if 语句。CASE WHEN a THEN b ELSE c END

我现在的问题是,我如何让注射延时?Benchmark() 和 sleep() 也不起作用。

我现在已经将表命名为“flag”,并且要读出的字段名称被命名为“password”。

我从数据库获得的唯一信息是执行我的输入(或查询,因为我绕过输入注入 SQL)所需的时间

SQL Oracle SQL注入

评论

3赞 The Impaler 5/15/2020
您的问题不清楚。请提供更多详情。
0赞 5/15/2020
没有等效的运行 SQL 查询。您可以做的是,仅当查询本身在特定日期和时间之后启动时才进行注入 - 例如,如果有人在 2020 年 6 月 1 日欧洲/伦敦时间上午 8:00 之后运行查询。但是,您不能在今天运行查询,并且永远不会再运行查询,这将在以后触发注入。(除非您的注射能够将其他一些“工作”或任务安排在以后 - 甚至不确定是否可以完成,即使目标系统设计得如此之差以至于允许这样做。sleep()

答:

1赞 Brian Leach 5/16/2020 #1

我在 SQL 注入教程的 Web 上找到了以下 SQL 语句

select dbms_pipe.receive_message(('a'),10) from dual;

我不确定我是否应该参与这种事情,但既然我在我的第一个 Google 搜索中找到了它,我就会继续发布它。

我测试了它,结果延迟了 10 秒。