
Laravel框架惊现高危漏洞 攻击者可肆意植入恶意脚本
声明:该文章来自(星尘安全)版权由原作者所有,K2OS渲染引擎提供网页加速服务。
Laravel 框架中出现了一个极为严重的安全漏洞(编号为 CVE-2024-13918)。攻击者能够借此在运行该流行 PHP 框架特定版本的网站上,随意执行 JavaScript 代码。
这个漏洞是在 Laravel 调试模式下的错误页面渲染环节被发现的。当应用程序处于开发配置状态时,就容易受到反射性跨站点脚本(XSS)攻击。CVSS v3.1 评分为 8.0 分,受影响的 Laravel 版本为 11.9.0 至 11.35.1。
漏洞触发机制
当通过.env 配置文件中的 APP_DEBUG=true 设置开启调试模式后,Laravel 的错误处理系统就会暴露出这个漏洞。在受影响的版本里,框架的错误页面在展示 HTTP 500 错误的诊断信息时,对请求参数的编码处理存在错误。
攻击者会利用这一点,精心构造恶意 URL,在查询参数或者 POST 数据里嵌入 JavaScript 攻击载荷。从技术层面来看,根本原因在于 Laravel 的 Blade 模板引擎,在调试错误页面中渲染请求参数时,使用了未转义的输出指令({! !!}),这就绕过了 Laravel 原本由安全的 {{ }} 语法自动进行 HTML 实体编码所提供的 XSS 防护机制。在错误页面模板中,就能看到这段容易引发问题的代码片段。
一旦开发人员配置了 APP_DEBUG=true,这种未转义的输出方式就会让原始的 HTML/JavaScript 内容得以注入。这种情况一般出现在开发阶段,但有时候在生产环境中也会意外开启。这个漏洞是由 SBA Research 的研究人员 Philipp Adelsberger 和 Fabian Funder 发现的。
POC方式
有一个POC展示了这种攻击的实现方式:
在 .env 中使用 APP_DEBUG=true 配置 Laravel 创建触发错误的测试路由:
制作攻击 URL:
当访问这个 URL 时,会触发除零错误,使得 Laravel 渲染包含未转义的 payload 参数的调试错误页面,浏览器就会执行注入的脚本,进而导致用户会话信息被泄露,或者被执行未经授权的操作。
攻击场景
攻击者可以通过该漏洞执行多种恶意操作,比如:
通过 document.cookie 访问来窃取会话 cookie 和身份验证令牌;
通过 window.location 操作,将用户重定向到钓鱼网站;
通过 CSRF 令牌盗窃,代表已认证用户执行操作;
还能通过加载外部脚本,部署加密货币挖矿程序或者恶意软件
当然,这种攻击需要受害者在应用程序以调试模式运行时,点击特制链接。不过,攻击者要是把社会工程策略和对易受攻击实例的广泛扫描结合起来,那这将成为一个极具威胁的攻击手段。
缓解措施
Laravel 已经发布了 11.36.0 版本,里面包含了针对错误页面请求参数正确编码的安全补丁。开发人员得马上通过 Composer 进行升级。
对于那些需要临时缓解风险的系统,要审核所有环境,确保生产环境中调试模式始终处于禁用状态。
Laravel 为全球超过 78.6 万个可见的 Web 应用程序提供支持,管理员必须把漏洞管理和强化错误报告机制当作重中之重。
[超站]友情链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
- 1 “厦门发展战略”启示 7904209
- 2 壶口瀑布再现50元人民币上的壮阔 7809003
- 3 毕业即失业 无人机培训该降虚火了 7713471
- 4 防中暑≠猛喝水 7616778
- 5 暑假开始家长晒账单:已花费超2万元 7523354
- 6 被吹上天的国产片也翻车了 7423722
- 7 网警护航高考:警惕花钱改分骗局 7328525
- 8 王晶曝张曼玉秘闻:她当年也是花瓶 7238217
- 9 女孩放弃免试入学 考上北大 7137769
- 10 3对母女包车游坠河 2死5失联 7039702