以下是取自ModSecurity核心规则的两条规则。这两个规则是XSS攻击的基本规则。如果我们查看这两条规则,它们的变量和操作是相同的,它们在正则表达式中的不同,即\bgetparent文件夹\b“和\bonmousedown\b\W*?\=”,并发现了大量这样的规则。这是多余的吗?我可以组合这些规则,即单个正则表达式吗?
REQUEST_COOKIES|REQUEST_COOKIES_NAMES|REQUEST_FILENAME|ARGS_NAMES|ARGS|XML:/*“\bgetparent文件夹\b”阶段:2,rev:'2.2.4',SecRule,t:none,t:htmlEntityDecode,t:compressWhiteSpace,t:小写,ctl:auditLogParts=+E,块,msg:‘跨站点脚本攻击’,id:'958016',标签:‘SecRule_A2/WASC-8’,标签:‘WASCTC/WASC-22’,标记:‘OWASP_TOP_10/A2’,标签:‘OWASP_App传感器/IE1’,标签:‘PCI/6.5.1’,日志数据:‘%{TX.0}’,严重性:‘2’,setvar:'tx.msg=%{rule.msg}',rule.msg}setvar:tx.%{rule.id}-WEB_ATTACK/XSS-%{matched_var_name}=%{tx.0}“SecRule REQUEST_COOKIES|REQUEST_COOKIES_NAMES|REQUEST_FILENAME|ARGS_NAMES|ARGS|XML:/* "\bonmousedown\b\W*?\=”\“阶段:2,rev:'2.2.4',capture,t:none,t:htmlEntityDecode,t:compressWhiteSpace,t:小写,ctl:auditLogParts=+E,块,msg:‘跨站点脚本攻击’,id:'958414',标签:‘OWASP_TOP_10/A2’,标签:‘OWASP_App传感器/IE1’,标签:‘PCI/6.5.1’,日志数据:‘%{TX.0}’,严重性:‘2’,setvar:‘tms.g=%{rule.msg}’,rule.msg}setvar:tx.%{rule.id}-WEB_ATTACK/XSS-%{matched_var_name}=%{tx.0}“
发布于 2012-08-08 05:43:26
好吧,我看这两个正则表达式的区别,
\bgetparentfolder\b
\bonmousedown\b\W*?\=第一个只是匹配字符串“getparent文件夹”,而第二个是匹配除了字母、数字和下划线之外的字符串"onmousedown“,懒洋洋地匹配上一项(附加字符)0次或多次。我相信这将匹配使用onmousedown javascript事件的两种方式:
在HTML中:
<element onmousedown="SomeJavaScriptCode">在JavaScript中:
object.onmousedown="SomeJavaScriptCode"来自电子书XSS 2.5的这个页面提到了如何在XSS攻击中使用onmousedown。
哦,至于第一个正则表达式,“\bgetparent文件夹\b”,我没有在任何Javascript或JScript引用中找到它,但是在搜索它之后,我可以看到这个名称的函数和方法出现在许多语言中,比如VBScript。
因此很明显,这两条规则正在寻找同一类攻击(XSS)的非常不同的实现。所以我认为把它们结合成一个规则和一个组合的正则表达式是没有意义的。
https://security.stackexchange.com/questions/18022
复制相似问题