基于SQL语法的HTML和JSON有效负载保护
Citrix Web App Firewall使用模式匹配方法检测SQL注入攻击HTTP
而且JSON
有效载荷。该方法使用一组预定义的关键字和(或)特殊字符来检测攻击并将其标记为违规。尽管这种方法是有效的,但它可能会导致许多误报,从而增加一个或多个放松规则。特别是在HTTP或JSON请求中使用“Select”和“From”等常用单词时。我们可以通过实现SQL语法保护检查来减少误报超文本标记语言
而且JSON
有效载荷。
在现有的模式匹配方法中,如果HTTP请求中出现预定义的关键字和或特殊字符,则会识别SQL注入攻击。在这种情况下,语句不必是有效的SQL语句。但在基于语法的方法中,只有在SQL语句中出现关键字或特殊字符或SQL语句的一部分时才会检测到SQL注入攻击,从而减少了误报情况。
基于SQL语法的保护使用场景
考虑HTTP请求中出现的语句,“选择我的票,让我们在联合车站见面”。尽管该语句不是有效的SQL语句,但现有的模式匹配方法将该请求检测为SQL注入攻击,因为该语句使用了“Select”、“and”和“Union”等关键字。但是,在SQL语法方法的情况下,该语句不会被检测为违反攻击,因为关键字不在有效SQL语句中,或者不是有效SQL语句的一部分。
也可以配置基于语法的方法来检测SQL注入攻击JSON
有效载荷。为了添加松弛规则,您可以重用现有的松弛规则。细粒度松弛规则也适用于SQL语法,适用于具有“valueType”“关键字”的规则。在JSON
SQL语法,现有的基于url的方法可以重用。
该任务指导管理员通过CLI配置基于SQL语法的保护
要实现基于SQL语法的检测,你必须在Web应用防火墙配置文件中配置“SQLInjectionGrammar”参数。缺省情况下,该参数为关闭状态。除了学习之外,所有现有的SQL注入操作都被支持。升级后创建的任何新配置文件都支持SQL注入语法,并且它仍然具有默认类型“特殊字符或关键字”,并且必须显式启用。
在命令提示符下,输入:
添加appfw profile -SQLInjectionAction -SQLInjectionGrammar ON/OFF
例子:
添加appfw profile profile1 -SQLInjectionAction Block -SQLInjectionGrammar ON
该任务指导管理员通过CLI配置SQL模式匹配保护和语法保护
如果同时启用了基于语法的方法和模式匹配方法,那么设备将首先执行基于语法的检测,如果存在操作类型设置为block的SQL注入检测,则阻塞请求(不使用模式匹配验证检测)。
在命令提示符下,输入:
add appfw profile -SQLInjectionAction -SQLInjectionGrammar ON -SQLInjectionType <除' None '以外的任何动作:SQLSplCharANDKeyword/ SQLSplCharORKeyword/ SQLSplChar/ SQLKeyword>
例子:
添加appfw profile p1 - sqlinjectionaction block - SQLInjectionGrammar ON - sqlinjectiontype SQLSplChar
通过CLI配置SQL注入检查,只支持语法保护
在命令提示符下,输入:
add appfw profile -SQLInjectionAction -SQLInjectionGrammar ON -SQLInjectionType None
例子:
add appfw profile p1 - sqlinjectionaction block - SQLInjectionGrammar ON - sqlinjectiontype无
该任务指导管理员通过CLI绑定基于SQL语法的保护放松规则
如果应用程序要求您绕过SQL
如果在有效载荷中检查特定的“ELEMENT”或“ATTRIBUTE”,则必须配置松弛规则。
注意:
具有valueType“关键字”的松弛规则仅在设备使用执行检测时才计算
SQL
语法。
的SQL
命令注入检查放松规则的语法如下。在命令提示符下,输入:
bind appfw profile -SQLInjection [isRegex(REGEX| NOTREGE)] [-location ] [-valueType (Keywor|SpecialString|Wildchar) [][-isValueRegex (REGEX| NOTREGEX)]]
例子:
绑定appfw profile p1 -sqlinjection ABC http://10.10.10.10/
绑定appfw profile p1 -sqlinjection 'abc[0-9]+' http://10.10.10.10/ -isregex regEX
绑定appfw profile p1 -sqlinjection 'name' http://10.10.10.10/ -valueType关键字'selec[a-z]+' -isvalueRegex regEX
通过CLI配置基于SQL语法的JSON有效负载保护
要对JSON有效负载实现基于SQL语法的检测,必须在Web应用防火墙配置文件中配置“JSONSQLInjectionGrammar”参数。缺省情况下,该参数为关闭状态。除了学习之外,所有现有的SQL注入操作都被支持。升级后创建的任何新配置文件都支持SQL注入语法,并且它的默认类型仍然是“特殊字符或关键字”,您必须显式地启用它。
在命令提示符下,输入:
添加appfw profile -type JSON -JSONSQLInjectionAction -JSONSQLInjectionGrammar ON/OFF
例子:
添加appfw profile profile1 -type JSON -JSONSQLInjectionAction Block -JSONSQLInjectionGrammar ON
该任务指导管理员通过CLI配置SQL模式匹配保护和基于语法的保护
如果同时启用了基于语法的检查和模式匹配检查,那么设备将首先执行基于语法的检测,如果存在操作类型设置为block的SQL注入检测,则阻塞请求(不使用模式匹配验证检测)。
注意:
只有当设备使用SQL语法执行检测时,才计算valueType“关键字”的松弛规则。
在命令提示符下,输入:
add appfw profile -type JSON -JSONSQLInjectionAction -JSONSQLInjectionGrammar ON -JSONSQLInjectionType <除' None '以外的任何动作:SQLSplCharANDKeyword/ SQLSplCharORKeyword/ SQLSplChar/ SQLKeyword>
例子:
添加appfw profile p1 - type JSON - jsonsqlinjectionaction block - JSONSQLInjectionGrammar ON - jsonsqlinjectiontype SQLSplChar
通过CLI配置基于SQL语法的JSON有效负载保护
在命令提示符下,输入:
add appfw profile -type JSON -JSONSQLInjectionAction -JSONSQLInjectionGrammar ON -JSONSQLInjectionType None ' \
例子:
add appfw profile p1 - type JSON - jsonsqlinjectionaction block - JSONSQLInjectionGrammar ON - jsonsqlinjectiontype无
通过CLI为基于JSON SQL语法的保护绑定基于url的松弛规则
如果应用程序要求您绕过JSON
命令注入检查载荷中特定的“ELEMENT”或“ATTRIBUTE”,可以配置松弛规则。的JSON
命令注入检查放松规则的语法如下。在命令提示符下,输入:
绑定appfw profile -JSONCMDURL -comment -isAutoDeployed (AUTODEPLOYED | NOTAUTODEPLOYED) -state (ENABLED | DISABLED)
例子:
绑定appfw profile p1 -sqlinjection ABC http://10.10.10.10/
绑定appfw配置文件p1 -sqlinjection 'abc[0-9]+' http:// 10.10.10.10/ -isregex regEX . txt
绑定appfw profile p1 -sqlinjection 'name' http://10.10.10.10/ -valueType关键字'selec[a-z]+' -isvalueRegex regEX
通过GUI配置基于SQL语法的保护
完成GUI过程以配置基于语法的HTML SQL注入检测。
- 在导航窗格中,导航到安全>配置文件.
- 在配置文件页面,点击添加.
- 在Citrix Web App防火墙配置文件页面,点击安全检查下高级设置.
- 在安全检查节,转到SQL注入设置。
- 单击复选框附近的可执行图标。
点击动作设置访问HMTL SQL注入设置页面。
- 选择使用SQL语法检查复选框。
- 点击好吧.
使用GUI为JSON有效负载配置基于SQL语法的保护
完成GUI过程,配置基于语法的JSON SQL注入检测。
- 在导航窗格中,导航到安全>配置文件.
- 在配置文件页面,点击添加.
- 在Citrix Web App防火墙配置文件页面,点击安全检查下高级设置.
- 在安全检查节,转到JSON SQL注入设置。
- 单击复选框附近的可执行图标。
- 点击动作设置访问SQL注入设置页面。
- 选择使用SQL语法检查复选框。
点击好吧.