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保护需要完成以下步骤:
- 将应用程序防火墙配置文件添加为JSON。
- 设置JSON SQL注入设置的应用程序防火墙配置文件
- 通过绑定应用防火墙配置文件来配置JSON SQL动作。
添加JSON类型的应用防火墙配置文件
您必须首先创建一个配置文件,指定应用程序防火墙必须如何保护您的JSON web内容免受JSON SQL注入攻击。在命令提示符处,输入:
添加appfw配置文件
请注意:
将概要文件类型设置为JSON时,其他检查(如HTML或XML)将不适用。
例子
add appfw profile profile1 -type JSON
配置JSON SQL注入动作
必须配置一个或多个JSON SQL注入操作,以保护应用程序免受JSON SQL注入攻击。在命令提示下,键入:
set appfw profile
SQL注入操作包括:阻塞-阻塞违反此安全检查的连接。日志-违反安全检查的日志。Stats -生成此安全检查的统计信息。无-禁用此安全检查的所有操作。
配置JSON SQL注入类型
要在应用程序防火墙配置文件上配置JSON SQL注入类型,请在命令提示符下键入:
set appfw profile
例子
设置appfw配置文件配置文件1-JSONSQLInjectionType SQLKeyword
可用的SQL注入类型包括:可用的SQL注入类型。SQLSplChar。检查SQL特殊字符,SQLKeyword。检查SQL关键字。SQLSplCharANDKeyword。检查两者和块,如果发现。SQLSplCharORKeyword。。如果发现SQL特殊字符或spl关键字,则阻塞。可选值:SQLSplChar、SQLKeyword、SQLSplCharORKeyword、SQLSplCharANDKeyword。
请注意:要启用一个或多个操作,请键入“set-appfw profile-JSONSQLInjectionAction”,然后键入要启用的操作。
例子
设置appfw配置文件配置文件1-JSONSQLInjectionAction块日志统计
下面的示例显示了一个样本负载,它对应的日志消息和统计计数器:
Payload: ======= {"test": "data", "username": "waf", "password": "select * from t1;", "details": {"surname": "test", "age": "23"}}日志信息:=========== 08/19/2019:08:49:46 GMT pegasus121 Informational 0- pe -0: default APPFW APPFW_JSON_SQL 6656 0:10.217.32.165 18402 - ppe0 profjson http://10.217.32.147/test.html SQL关键字检查失败的对象值(违反=“选择(,)”)开始抵消(52)< >阻塞计数器 : ======== 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) < !——NeedCopy >
使用Citrix GUI配置JSON SQL注入保护
按照下面的步骤设置JSON SQL注入保护设置。
- 在导航窗格上,导航到安全>配置文件。
- 在配置文件页面,点击添加。
- 在Citrix Web App防火墙配置文件页面,点击安全检查下高级设置。
- 在安全检查部分,去JSON SQL注入设置。
单击复选框附近的可执行图标。
- 点击动作设置访问JSON SQL注入设置页面。
- 选择JSON SQL注入行动。
点击好啊。
- 在Citrix Web App防火墙配置文件页面,点击放松规则下高级设置。
在放松规则部分中,选择JSON SQL注入设置并单击编辑。
- 在JSON SQL注入放松规则页面中,输入请求必须发送到的URL。所有发送到此URL的请求都不会被阻止。
点击创造。