最后更新于
最后更新于
**正则表达式拒绝服务(ReDoS)**发生在有人利用正则表达式(一种在文本中搜索和匹配模式的方法)工作方式的弱点时。有时,当使用正则表达式时,它们可能变得非常缓慢,特别是当它们处理的文本片段变大时。这种缓慢可能会变得非常严重,即使文本大小略微增加,速度也会快速增长。攻击者可以利用这个问题使使用正则表达式的程序长时间停止正常工作。
查看详情:
恶意正则表达式模式是那些可能在精心制作的输入上卡住导致DoS的模式。恶意的正则表达式模式通常包含重复的分组和重复或在重复组内部重叠的交替。一些恶意模式的示例包括:
(a+)+
([a-zA-Z]+)*
(a|aa)+
(a|a?)+
(.*a){x},其中 x > 10
所有这些都对输入aaaaaaaaaaaaaaaaaaaaaaaa!
易受攻击。
在CTF(或漏洞赏金)中,也许您控制了与敏感信息(标志)匹配的正则表达式。然后,如果正则表达式匹配,而不匹配时页面冻结(超时或更长的处理时间)可能会很有用。这样,您将能够逐个字符地外泄字符串:
示例:^(?=HTB{sOmE_fl§N§)((.*)*)*salt$
以下是您控制输入和正则表达式的ReDoS示例:
在中,您可以找到这个ReDoS规则:^(?=<flag>)((.*)*)*salt$
在中,您可以找到这个:<flag>(((((((.*)*)*)*)*)*)*)!
在中,他使用了:^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$
如果您想在HackTricks中看到您的公司广告或下载PDF格式的HackTricks,请查看!
获取
探索,我们的独家
加入 💬 或 或在Twitter 🐦 上关注我们。
通过向和 github仓库提交PR来分享您的黑客技巧。