1. 支持中心
  2. 问题定义
  3. SQL注入(二阶)

SQL注入(二阶)

描述:SQL注入(二阶)

当将用户控制数据以不安全的方式合并到数据库SQL查询中时,SQL注入漏洞就会出现。攻击者可以提供精心设计的输入,以突破其输入出现的数据上下文并干扰周围查询的结构。

通常可以通过SQL注入来传递各种破坏性攻击,包括读取或修改关键应用程序数据,干扰应用程序逻辑,在数据库中升级特权并控制数据库服务器。

当应用程序存储用户提供的数据时,会产生二阶SQL注入,然后以不安全的方式合并到SQL查询中。为了检测漏洞,通常有必要在一个位置提交合适的数据,然后使用其他某些以不安全方式处理数据的应用程序功能。

修复:SQL注入(二阶)

防止SQL注入攻击的最有效方法是为所有数据库访问使用参数化查询(也称为准备的语句)。该方法使用两个步骤将潜在的污染数据合并到SQL查询中:首先,应用程序指定查询的结构,将占位符留给每个用户输入的项目;其次,申请指定每个占位符的内容。由于查询的结构已经在第一步中定义了,因此在第二步中不可能畸形的数据干扰查询结构。您应该查看数据库和应用程序平台的文档,以确定可以使用参数化查询的适当API。强烈建议您进行参数化每一个即使没有明显污染数据库查询的可变数据项,也可以防止发生监督,并避免应用程序代码库中其他地方的更改引入漏洞。

您应该知道,一些常见的和建议缓解SQL注射漏洞并不总是有效的:

  • 一种常见的辩护是将用户输入中出现的任何单个引号加倍,然后将输入纳入SQL查询。该防御旨在防止畸形数据终止其插入的字符串。但是,如果将数据合并到查询中是数字的,则辩护可能会失败,因为数字数据可能不会被封装在引号中,在这种情况下,只有一个空间才能突破数据上下文并干扰查询。此外,在二阶SQL注入攻击中,随后将最初插入数据库中插入数据库的数据已被安全逃脱,然后从数据库中读取,然后再次传递回数据库。当数据重复使用时,最初已加倍的引号将返回其原始表格,从而绕过辩方。
  • 另一个经常引用的防御是使用存储过程进行数据库访问。尽管存储程序可以提供安全福利,但不能保证防止SQL注入攻击。如果在存储过程中动态构建任何SQL,则会在标准动态SQL查询中出现的相同类型的漏洞。此外,即使该过程是合理的,如果使用可控制的数据以不安全的方式调用该过程,则可能会出现SQL注入。

参考

脆弱性分类

典型的严重程度

高的

类型索引(HEX)

0x00100210

类型索引(十进制)

1049104

bepaly下载

打扫扫描仪

这个问题 - 还有更多类似的问题 - 可以使用我们的bepaly下载

bepaly下载
bepaly下载app

打bur

仅从beplay体育能用吗$ 399.00

bepaly下载app