文件名称:regexploit:查找容易受到ReDoS攻击的正则表达式(正则表达式拒绝服务)
文件大小:90KB
文件格式:ZIP
更新时间:2024-04-08 13:06:01
Python
反潜 查找容易受到正则表达式拒绝服务(ReDoS)影响的正则表达式。 许多默认正则表达式解析器具有无限的最坏情况复杂度。当出现匹配的输入字符串时,正则表达式匹配可能很快。但是,某些不匹配的输入字符串会使正则表达式匹配器陷入疯狂的回溯循环中,并且需要花费很多时间来处理。这可能会导致拒绝服务,因为CPU会在尝试匹配正则表达式时卡住。 该工具旨在: 查找容易受到ReDoS攻击的正则表达式 举例说明将导致灾难性回溯的恶意字符串 最坏情况下的复杂性 这反映了正则表达式匹配器的回溯过程相对于输入字符串长度的复杂性。 这里的三次复杂度意味着,如果字符串的易受攻击的部分的长度加倍,则执行时间应大约长8倍(2 ^ 3)。对于具有加星标的指数ReDoS,例如(a*)*$将使用一个模糊系数,其复杂度将大于10。 为了可扩展性,除非允许真正的巨型弦作为输入,否则通常需要立方复杂度或更高。 例子 运行regexpl
【文件预览】:
regexploit-master
----setup.py(1KB)
----.gitignore(74B)
----regexploit()
--------languages()
--------output()
--------bin()
--------__init__.py(0B)
--------found_regex.py(153B)
--------hook.py(3KB)
--------redos.py(8KB)
--------ast()
----MANIFEST.in(114B)
----LICENSE(11KB)
----.github()
--------workflows()
----README.md(8KB)
----tests()
--------test_javascript.py(1KB)
--------test_csharp.py(841B)
--------test_at.py(1KB)
--------test_repeat.py(2KB)
--------test_character.py(4KB)
--------test_redos.py(7KB)
--------test.cs(722B)
--------test_python_ast.py(1KB)
----.flake8(214B)
----requirements-dev.txt(40B)