This article描述了两种方法来检测正则表达式是否容易受到灾难性回溯(以及ReDOS或正则表达式拒绝服务攻击)的攻击:
模糊测试 - 基本上是一种蛮力,看看是否有输入滞后
分析 - 智能地查看正则表达式,并且能够精确定位在正则表达式中发生减速的位置。
分析工具是作为研究的一部分而构建的,但我不确定它是否实际上是作为开源工具发布的(正如它所说的那样)。
所以我的问题是:基于链接的文章,我如何分析正则表达式的漏洞?我不是在寻找Fuzzing,因为它更耗时并且无法确定问题的位置。
我知道另一个问题是,一般来说,(并且答案都是模糊或“太难”)可以找到“糟糕的正则表达式”。
答案 0 :(得分:1)
并非真正基于您的文章,但复杂性的一个衡量标准是正则表达式的star height。
This tool可让您检测星形高度超过一的危险正则表达式。
请注意,这只应用作指示。我使用了星高>的正则表达式。 1,每ms可以解析几KB的文本。