有关Regexploit
Regexploit可以协助众多科学研究工作人员找到易受正则表达式拒绝服务攻击(ReDoS)的正则表达式。
很多默认设置正则表达式在线解析都很繁杂,并且存有许多安全隐患。当表明匹配的键入字符串时,应用正则表达式匹配的形式很有可能速率会迅速,可是一些不匹配的键入字符串很有可能会使正则表达式匹配器进到不可思议的回溯循环系统,而且必须耗费很长期来解决。这时,将有可能造成应用软件发生拒绝服务攻击的状况,由于CPU在试着匹配正则表达式的时候会卡死。
该专用工具的具体目地如下所示:
- 找寻易受正则表达式拒绝服务攻击(ReDoS)的正则表达式;
- 得出一个会造成无限循环回溯的故意字符串实例;
最坏状况复杂性
最坏情况复杂性体现了正则表达式匹配器的回溯全过程相比于键入字符串长短的复杂性。这一最坏状况复杂性是以立方米测算的,假如字符串的易受攻击一部分的长短提升了一倍,则实行時间应增加约8倍(2^3)。
专用工具安裝
该专用工具必须在当地安裝并配备好Python 3.8 自然环境。因为Regexploit会从JavaScript/TypeScript编码中获取正则表达式,因而还必须安裝好NodeJS 12 。
最先,我们可以建立一个虚拟环境:
随后应用pip来安裝Regexploit:
专用工具应用
1. 正则表达式解决
我们可以根据stdin(每一个正则表达式占一行)向Regexploit键入正则表达式:
或是立即解决正则表达式目录文档:
2. 全自动获取正则表达式
Regexploit内嵌适用分析Python、JavaScript、TypeScript、C#、YAML和JSON编码中的正则表达式。
(1) Python代码
根据AST分析Python编码(不用实行)并获取正则表达式,并剖析是不是易受ReDoS:
(2) Javascript / Typescript
该作用将应用regexploit/bin/javascript中关联的NodeJS包完成,并分析JavaScript中的正则表达式:
(3) JSON/YAML
YAML适用必须安裝pyyaml,我们可以应用指令“pip install regexploit[yaml]”开展安裝:
(4) C#(.NET)
专用工具应用样例
运作Regexploit,并在命令中键入正则表达式“v\w*_\w*_\w*$”:
这时,Regexploit将回到评定結果。
新项目详细地址
Regexploit:【GitHub传送器】