使用 sql-injection 创建数据库触发器,无需堆叠查询

Posted

技术标签:

【中文标题】使用 sql-injection 创建数据库触发器,无需堆叠查询【英文标题】:Create database triggers with sql-injection without stacked queries 【发布时间】:2011-02-01 15:11:39 【问题描述】:

目前我正在撰写一篇关于使用 RFID 标签的 sql 注入的研究论文,我很好奇如果禁用堆叠查询,是否可以使用 sql 注入创建数据库触发器。如果启用了堆叠查询,当然很容易(假设您知道表格布局),但如果出于安全原因禁用它们会怎样。

问题是可能创建触发器,假设存在SQL注入。数据库无所谓,选择适合需要的。

【问题讨论】:

Err... SQL 注入是指(可能是恶意的)将 SQL 代码输入到不是为此目的创建的 UI 字段中,以便输入的 SQL 代码由主机系统运行,正确?那么,您是在问是否可以使用注入的代码创建触发器,或者是否可以利用触发器? 我在询问是否可以使用注入代码创建触发器,以防堆叠查询被禁用。 【参考方案1】:

正在寻找什么数据库?在 PostgreSQL 中,每个触发器调用一个存储过程。在存储过程中,您可以根据需要execute dynamic queries。如果您没有针对 SQL 注入采取任何措施,而不是使用 quote_ident() 和/或 quote_literal(),那么您的过程很容易受到 SQL 注入的攻击。那是你自己的选择。

用户输入永远不能被信任,那么为什么要担心 RFID 输入呢?它是输入,因此不能被信任。

【讨论】:

我觉得你误解了我的问题。问题是是否可以创建触发器,假设存在 SQL 注入。

以上是关于使用 sql-injection 创建数据库触发器,无需堆叠查询的主要内容,如果未能解决你的问题,请参考以下文章

2017.8.22 sqli-labs 题目 刷起来!!

我需要在这个示例 magento 代码中避免 sql 注入吗?

如何使用内部联接创建触发器

警告:使用编译错误创建触发器?

使用 derby 数据库和 netbeans ide 创建触发器

MySQL——触发器的创建和使用总结