我们最近在PHP项目上运行了Appscan。扫描报告指出""style =font-family:expression(alert(3614))!是一个问题,因为如果我将此字符串作为URL值传递,则会收到警报。
所以我写了一个正则表达式来解决这个问题,这个正则表达式是:/[\s]*\bstyle[\s]*=[\s]*[^:]*:[\s]*expression\b/i
和/[\s]*\bstyle[\s]*=[\s]*[^=]*=[\s]*expression\b/i来解决更多的问题。
现在我再次运行scan来检查我的代码是否工作正常,这一次appscan报告了类似的问题,但是在字符和问题之间嵌入一个反斜杠是:
""style =font-family:expres\sion(alert(3614))!
请注意,在表达式字符串的“%s”之间插入了反斜杠。
我有一些疑问,请澄清一下。
#myDiv {
background-color: red;
height: expression(document.body.offsetHeight);
} 等同于
#myDiv {
back\g\r\o\u\nd-color: red;
height: e\x\p\res\s\i\on(document.body.offsetHeight);
} 除了'e‘或'b’或'a‘或'c’前面的反斜杠
上面的CSS代码在使用和不使用反斜杠的情况下产生相同的输出。有人能解释一下这个问题是什么吗?我如何解决这个问题,让Appscan感到满意
发布于 2015-06-16 00:14:18
AppScan测试了许多不同的变体(有效负载),以确定是否存在相同的问题。我相信您在这里看到的是,其中一个变体没有使用您定义的regexp进行过滤。导致了肯定的发现。
https://stackoverflow.com/questions/20540883
复制相似问题