
Laravel框架驚現(xiàn)高危漏洞 攻擊者可肆意植入惡意腳本
聲明:該文章來(lái)自(星塵安全)版權(quán)由原作者所有,K2OS渲染引擎提供網(wǎng)頁(yè)加速服務(wù)。
Laravel 框架中出現(xiàn)了一個(gè)極為嚴(yán)重的安全漏洞(編號(hào)為 CVE-2024-13918)。攻擊者能夠借此在運(yùn)行該流行 PHP 框架特定版本的網(wǎng)站上,隨意執(zhí)行 JavaScript 代碼。
這個(gè)漏洞是在 Laravel 調(diào)試模式下的錯(cuò)誤頁(yè)面渲染環(huán)節(jié)被發(fā)現(xiàn)的。當(dāng)應(yīng)用程序處于開(kāi)發(fā)配置狀態(tài)時(shí),就容易受到反射性跨站點(diǎn)腳本(XSS)攻擊。CVSS v3.1 評(píng)分為 8.0 分,受影響的 Laravel 版本為 11.9.0 至 11.35.1。
漏洞觸發(fā)機(jī)制
當(dāng)通過(guò).env 配置文件中的 APP_DEBUG=true 設(shè)置開(kāi)啟調(diào)試模式后,Laravel 的錯(cuò)誤處理系統(tǒng)就會(huì)暴露出這個(gè)漏洞。在受影響的版本里,框架的錯(cuò)誤頁(yè)面在展示 HTTP 500 錯(cuò)誤的診斷信息時(shí),對(duì)請(qǐng)求參數(shù)的編碼處理存在錯(cuò)誤。
攻擊者會(huì)利用這一點(diǎn),精心構(gòu)造惡意 URL,在查詢參數(shù)或者 POST 數(shù)據(jù)里嵌入 JavaScript 攻擊載荷。從技術(shù)層面來(lái)看,根本原因在于 Laravel 的 Blade 模板引擎,在調(diào)試錯(cuò)誤頁(yè)面中渲染請(qǐng)求參數(shù)時(shí),使用了未轉(zhuǎn)義的輸出指令({! !!}),這就繞過(guò)了 Laravel 原本由安全的 {{ }} 語(yǔ)法自動(dòng)進(jìn)行 HTML 實(shí)體編碼所提供的 XSS 防護(hù)機(jī)制。在錯(cuò)誤頁(yè)面模板中,就能看到這段容易引發(fā)問(wèn)題的代碼片段。
一旦開(kāi)發(fā)人員配置了 APP_DEBUG=true,這種未轉(zhuǎn)義的輸出方式就會(huì)讓原始的 HTML/JavaScript 內(nèi)容得以注入。這種情況一般出現(xiàn)在開(kāi)發(fā)階段,但有時(shí)候在生產(chǎn)環(huán)境中也會(huì)意外開(kāi)啟。這個(gè)漏洞是由 SBA Research 的研究人員 Philipp Adelsberger 和 Fabian Funder 發(fā)現(xiàn)的。
POC方式
有一個(gè)POC展示了這種攻擊的實(shí)現(xiàn)方式:
在 .env 中使用 APP_DEBUG=true 配置 Laravel 創(chuàng)建觸發(fā)錯(cuò)誤的測(cè)試路由:
制作攻擊 URL:
當(dāng)訪問(wèn)這個(gè) URL 時(shí),會(huì)觸發(fā)除零錯(cuò)誤,使得 Laravel 渲染包含未轉(zhuǎn)義的 payload 參數(shù)的調(diào)試錯(cuò)誤頁(yè)面,瀏覽器就會(huì)執(zhí)行注入的腳本,進(jìn)而導(dǎo)致用戶會(huì)話信息被泄露,或者被執(zhí)行未經(jīng)授權(quán)的操作。
攻擊場(chǎng)景
攻擊者可以通過(guò)該漏洞執(zhí)行多種惡意操作,比如:
通過(guò) document.cookie 訪問(wèn)來(lái)竊取會(huì)話 cookie 和身份驗(yàn)證令牌;
通過(guò) window.location 操作,將用戶重定向到釣魚(yú)網(wǎng)站;
通過(guò) CSRF 令牌盜竊,代表已認(rèn)證用戶執(zhí)行操作;
還能通過(guò)加載外部腳本,部署加密貨幣挖礦程序或者惡意軟件
當(dāng)然,這種攻擊需要受害者在應(yīng)用程序以調(diào)試模式運(yùn)行時(shí),點(diǎn)擊特制鏈接。不過(guò),攻擊者要是把社會(huì)工程策略和對(duì)易受攻擊實(shí)例的廣泛掃描結(jié)合起來(lái),那這將成為一個(gè)極具威脅的攻擊手段。
緩解措施
Laravel 已經(jīng)發(fā)布了 11.36.0 版本,里面包含了針對(duì)錯(cuò)誤頁(yè)面請(qǐng)求參數(shù)正確編碼的安全補(bǔ)丁。開(kāi)發(fā)人員得馬上通過(guò) Composer 進(jìn)行升級(jí)。
對(duì)于那些需要臨時(shí)緩解風(fēng)險(xiǎn)的系統(tǒng),要審核所有環(huán)境,確保生產(chǎn)環(huán)境中調(diào)試模式始終處于禁用狀態(tài)。
Laravel 為全球超過(guò) 78.6 萬(wàn)個(gè)可見(jiàn)的 Web 應(yīng)用程序提供支持,管理員必須把漏洞管理和強(qiáng)化錯(cuò)誤報(bào)告機(jī)制當(dāng)作重中之重。
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級(jí)服務(wù)市場(chǎng):https://www.ijiandao.com/
- 1 像石榴籽一樣緊緊抱在一起 7904732
- 2 安理會(huì)五常僅美國(guó)未承認(rèn)巴勒斯坦國(guó) 7808166
- 3 深圳:建議準(zhǔn)備至少3天的應(yīng)急物資 7713766
- 4 唱著民歌迎豐收 7617544
- 5 法國(guó)宣布正式承認(rèn)巴勒斯坦國(guó) 7523136
- 6 廣東福建大暴雨 臺(tái)灣局地特大暴雨 7424561
- 7 法國(guó)球星登貝萊榮膺2025年金球獎(jiǎng) 7331919
- 8 福建艦“三彈成功”意味著什么 7235067
- 9 17級(jí)臺(tái)風(fēng)“樺加沙”明日登陸廣東 7138608
- 10 268萬(wàn)翡翠標(biāo)錯(cuò)價(jià)按26.8萬(wàn)賣出 7041224