打印 上一主题 下一主题

正则表达式拒绝服务(ReDoS)——邪恶字符串导致的CPU炸弹

[复制链接]
跳转到指定楼层
楼主
发表于 昨天 23:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看 : 1|回复 : 0
正则表达式拒绝服务(ReDoS)——邪恶字符串导致的CPU炸弹
摘要:正则表达式拒绝服务(ReDoS, Regular Expression Denial of Service)攻击利用某些低效正则表达式(具有“灾难性回溯”特性),通过精心构造的字符串使正则引擎CPU占用飙升,导致服务不可用。黑客利用此漏洞可瞬间拖垮应用。本文讲解易受攻击的正则模式,并提供替代引擎、输入长度限制和超时机制。
关键词:黑客网站攻击;ReDoS;渗透测试;拒绝服务;正则表达式安全

一、引言
正则表达式是处理字符串的强大工具,但不当的写法可能导致指数级回溯。例如,正则^(a+)+$匹配字符串aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!时,需要进行2^N次回溯。黑客利用此特性发起ReDoS攻击,瘫痪服务器。
二、ReDoS原理2.1 危险模式
  • 嵌套量词:(a+)+、(a|a)+、(a*)*
  • 重叠分组:a*b 与 a*.*b
  • 经典例子:^(\w+)+\s+$ 配合长字符串(无空格)。

2.2 攻击示例
服务端代码:
[size=12.573px]javascript



app.get('/search', (req, res) => {    let pattern = req.query.pattern;    let input = req.query.input;    let re = new RegExp(pattern);    if (re.test(input)) res.send("Match");    else res.send("No match");});

黑客提供pattern为(a+)+,input为一长串a加一个!,服务器CPU瞬间满载。
三、防御措施
  • 使用非回溯引擎:Google RE2、Rust的regex库等保证线性时间。
  • 限制输入长度:例如最长100字符,极大降低回溯爆炸可能性。
  • 设置正则执行超时:如Node.js的--regexp-timeout,Python的timeout装饰器。
  • 避免动态构造用户提供的正则表达式;如果必须,使用安全子集或强制超时。
  • 代码审计:扫描危险正则模式。

四、总结
ReDoS是一种低带宽高杀伤力的DoS攻击。防御核心是杜绝用户控制的正则表达式 + 输入长度限制 + 超时机制。


黑客接单网,一个诚信可靠的黑客在线接单平台网站 - 论坛版权欢迎各位客户访问黑客接单网
黑客接单网,一个诚信可靠的黑客在线接单平台网站是一个专业的黑客在线接单服务平台
黑客接单网,一个诚信可靠的黑客在线接单平台网站聚集多位顶级黑客大牛于此
专业服务于网站攻击,网站入侵,软件开发,软件破解,聊天记录截取,手机定位,删帖,改贴,开房记录查询等各种网络服务
如果您有相关业务需求,请联系我们在线客服咨询,获取解决方案
黑客接单网,一个诚信可靠的黑客在线接单平台网站全体工作人员恭候您下达任务,我们誓必不负重托。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

HeiKeJieDan(黑客接单网)黑客接单网,是一个国际顶级黑客在线接单网站平台,平台聚集数十位IT界顶级黑客精英大神,软件-网站开发工程师,逆向破解工程师,以及后勤协助人员,网络在线全职兼职人员,强大的IT精英团队聚集,只为为您提供最优质可靠的网络安全技术服务。

联系我们

新加坡-缅甸-菲律宾-美国

0037259400637(服务时间:9:00-18:00)

hk@heike8.com

在线咨询新浪微博官方微信官方微信

黑客客服

网   址:WWW.HKJD.CC
邮箱号:hk@heike8.com
快手号:HeiKeJieDan
电报TG号:hkjd9988
国际客服:0037259400637

快速回复 返回顶部 返回列表