首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何彻底避免正则表达式的灾难性回溯?

这种攻击也有自己的名字:ReDoS (RegEx Denial of Service)。 由于正则表达式应用非常广泛,几乎存在于后端服务的各个部分,所以只要找到其中一个漏洞,就有机可趁。...试想一个场景,黑客发现了 WAF 中存在 ReDoS 漏洞,发送一个请求打垮了 WAF;你无法在短时间内定位这个问题,甚至意识不到这是一次攻击;为了保证业务的正常,你选择重启或者暂时关闭 WAF;在 WAF...SDLFuzzer 是几年前微软开发的一个专门的 ReDoS 检测工具,但已经不再维护了。 这方面的工具可选择的不多,而且关注度不高。...这个工具已经找出了几个开源项目中的 ReDoS 漏洞。 下面是 paper 中对比测试的结果: 可否一劳永逸?...即使我们用了这类工具,有难免会有误报和漏报,那么有没有一劳永逸的方式来解决 ReDoS 呢? 那么我们就要回到问题产生的根源去寻找答案:正则引擎使用了回溯的方式来匹配。

2K10

一个由正则表达式引发的血案(解决版)

一个不太长的字符串(几十或几百),就能让正则引擎这辈子都跑不出匹配结果,从而导致拒绝服务攻击(Denial of Service),因为是正则表达式导致的,缩写成ReDoS。...我不识字版 ReDoS匹配视频模拟版,总之你看到它在不停的回溯(在状态机里绕圈圈)就对了!警告:洗脑背景音乐。...ReDoS的状态机模拟版 https://www.zhihu.com/video/1032983004821430272 自动构造正则表达式复杂度攻击字符串 现在进入我们工具的广告部分。...我们的确可以直接搬来一个遗传算法,让fitness function是字符串匹配的“性价比”: 然后让遗传算法帮我们找到所有字符串中性价比最高的那个,自然就是能够造成ReDoS攻击的字符串。...最后,在“Pumping”阶段将匹配较慢的字符串强化为效果拔群的ReDoS字符串,例如 00hellohello0000000000000000000000000000 。 代码实现参考传送门。

1.2K10

跟着三梦学Java安全:半自动挖洞

但经验丰富的师傅们改造下也许可半自动挖RCE 介绍 去年底,我的偶像三梦师傅发了一篇文章:一种普遍存在于java系统的缺陷 - Memory DoS 三梦师傅重点提到了五种Java中的DoS漏洞 由Pattern.matches造成的ReDoS...source可以传递,例如参数是a那么b=a.func()等操作后认为b被污染 如果匹配到对应的规则认为可能存在漏洞 关于如何解压JAR包进行分析等基础功能,不打算分析,可以参考文章末给出的代码仓库地址 ReDoS...检测 关于ReDoS的根源是Pattern.matched导致的正则回溯,例如以下代码会卡死(至少在JDK8中会卡死) public static void main(String[] args) {...} } } super.visitMethodInsn(opcode, owner, name, desc, itf); } 最终的分析反而简单,我这里认为两种情况存在ReDoS...' RLIKE '\(a\|aa\)\+' 仅在Java层中存在ReDoS漏洞,测试在MySQL中不存在问题 循环条件可控检测 前两步类似以上内容,不再多说 在visitCode方法中对每个参数设置污染

34120

Serverless安全研究 — Serverless安全风险

2018年2月, NodeJS 「aws-lambda-multipart-parser」库被曝出ReDoS漏洞(CVE-2018-7560)【12】,该漏洞由PureSec安全团队发现,其团队人员通过分析指出此漏洞可导致部署在...此处开发人员通过RegExp()构造函数将boundry作为正则内容并在split()方法中使用,这是一个非常危险的写法,因为请求体与boundry全由客户端控制,攻击者可通过构造耗时的正则表达式和请求体进行ReDoS...在上述示例中,根据OWASP对ReDoS的解释【13】,我们可以看出攻击者选取了效率极低的正则表达式 (.+)+$作为boundary字段的值,上述恶意请求将会在短时间内引发100%的CPU占用率,在针对使用此漏洞库的...3] https://github.com/puresec/awesome-serverless-security [4] https://securityboulevard.com/2018/03/redos-vulnerability-in-aws-lambda-multipart-parser-node-package...name=CVE-2018-7560 [13] https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS

3.6K20
领券