Citrix ADC

JSON SQL 注入保护检查

传入的 JSON 请求可以以部分 SQL 查询字符串或代码中未经授权的命令的形式进行 SQL 注入。这会导致从 Web 服务器的 JSON 数据库中窃取数据。收到此类请求后,设备会阻止此类请求以保护您的数据。

考虑以下情况:客户端向 Citrix ADC 设备发送 JSON SQL 请求,JSON 解析器将解析请求负载,如果观察到 SQL 注入,则该设备将对 JSON SQL 内容强制执行约束。约束对 JSON SQL 请求强制执行大小限制。因此,如果观察到任何 JSON SQL 注入,设备将应用操作并通过 JSON SQL 错误页进行响应。

配置 JSON SQL 注入保护

要配置 JSON SQL 保护,您必须完成以下步骤:

  1. 将应用程序防火墙配置文件添加为 JSON。
  2. 设置 JSON SQL 注入设置的应用程序防火墙配置文件
  3. 通过绑定应用程序防火墙配置文件来配置 JSON SQL 操作。

添加 JSON 类型的应用程序防火墙配置文件

您必须首先创建一个配置文件,指定应用程序防火墙必须如何保护您的 JSON Web 内容免受 JSON SQL 注入攻击。 在命令提示窗口中,键入:

add appfw profile <name> -type (HTML | XML | JSON)

注意

将配置文件类型设置为 JSON 时,HTML 或 XML 等其他检查将不适用。

示例

add appfw profile profile1 –type JSON

配置 JSON SQL 注入操作

您必须配置一个或多个 JSON SQL 注入操作,以保护您的应用程序免受 JSON SQL 注入攻击。 在命令提示窗口中,键入:

set appfw profile <name> - JSONSQLInjectionAction [block] [log] [stats] [none]

SQL 注入操作是: 阻止-阻止冲突此安全检查的连接。 日志-记录此安全检查的冲突情况。 统计数据-为此安全检查生成统计数据。 无-禁用此安全检查的所有操作。

配置 JSON SQL 注入类型

要在应用程序防火墙配置文件上配置 JSON SQL 注入类型,请在命令提示符下键入:

set appfw profile <name> - JSONSQLInjectionType <JSONSQLInjectionType>

示例

set appfw profile profile1 -JSONSQLInjectionType SQLKeyword

可用的 SQL 注入类型所在的位置: 可用的 SQL 注入类型。 SQLSplChar。检查 SQL 特殊字符, SQLKeyword。检查 SQL 关键字。 SQLSplCharANDKeyword。检查和块(如果找到)。 SQLSplCharORKeyword。如果找到 SQL 特殊字符或 spl 关键字,则会阻止。 可能的值:SQLSplChar、SQLKeyword、SQLSplCharORKeyword、SQLSplCharANDKeyword。

注意: 要启用一个或多个操作,请键入“set appfw profile - JSONSQLInjectionAction”,然后键入要启用的操作。

示例

set appfw profile profile1 -JSONSQLInjectionAction block log stat

以下示例显示了一个示例负载及其相应的日志消息和统计数据计数器:

Payload:
=======
{
  "test": "data",
  "username": "waf",
  "password": "select * from t1;",
  "details": {
    "surname": "test",
    "age": "23"
  }
}

Log Message:
===========
08/19/2019:08:49:46 GMT pegasus121 Informational 0-PPE-0 : default APPFW APPFW_JSON_SQL 6656 0 :  10.217.32.165 18402-PPE0 - profjson http://10.217.32.147/test.html SQL Keyword check failed for object value(with violation="select(;)") starting at offset(52) <blocked>
Counters:
========
   1  441083             1 as_viol_json_sql
   3       0             1 as_log_json_sql
   5       0             1 as_viol_json_sql_profile appfw__(profjson)
   7       0             1 as_log_json_sql_profile appfw__(profjson)

使用 Citrix GUI 配置 JSON SQL 注入保护

按照以下步骤设置 JSON SQL 注入保护设置。

  1. 在导航窗格中,导航到安全 > 配置文件
  2. 配置文件页中,单击添加
  3. Citrix Web App Firewall 配置文件页面中,单击高级设置下的安全检查
  4. 安全检查 部分,转到 JSON SQL 注入 设置。
  5. 单击复选框附近的可执行文件图标。

    JSON SQL 注入安全检查

  6. 单击 操作设置 以访问 JSON SQL 注入设置 页面。
  7. 选择 JSON SQL 注入 操作。
  8. 单击确定

    JSON SQL 注入安全检查

  9. Citrix Web App Firewall 配置文件 页面中,单击高级设置下的放宽规则
  10. 放宽规则部分中,选择 JSON SQL 注入 设置,然后单击编辑

    JSON SQL 注入安全检查

  11. 在 JSON SQL 注入放宽规则页面中,输入必须向其发送请求的 URL。发送到此 URL 的所有请求都不会被阻止。
  12. 单击创建

    JSON SQL 注入安全检查

JSON SQL 注入保护检查