<samp id="cmiww"><tbody id="cmiww"></tbody></samp>
<ul id="cmiww"><pre id="cmiww"></pre></ul>
<ul id="cmiww"></ul>
<cite id="cmiww"></cite>
  • <samp id="cmiww"></samp>
    <samp id="cmiww"></samp>
  • <strike id="cmiww"><abbr id="cmiww"></abbr></strike>
    <samp id="cmiww"><tbody id="cmiww"></tbody></samp>
  • <ul id="cmiww"><tbody id="cmiww"></tbody></ul>
  • 網絡事件解讀(2):CVE-2024-4577漏洞之PHP-CGI安全事件

    發(fā)表日期:2024/09/14 瀏覽次數:

    前段時間新出現(xiàn)一個攻擊范圍很廣的漏洞,一些XAMPP服務器受到攻擊。這個攻擊事件是怎么發(fā)生的呢?背后的原因以及技術細節(jié)是什么呢?本文帶領大家透過這次PHP CGI攻擊事件了解網絡攻擊的背后真相以及相關原理。


    1.     常見Web漏洞

    Web安全漏洞是Web應用中的一些安全缺陷,可能導致黑客利用來進行一些惡意的網絡活動。常見的安全漏洞有:


    SQL注入漏洞

    通過將惡意的SQL代碼插入到應用程序處理的SQL語句中,導致攻擊者可以修改數據庫查詢,從而讀取,修改或者刪除數據。

    跨站腳本(XSS)漏洞

    跨站腳本漏洞是客戶端代碼注入攻擊,利用Web應用程序對用戶輸入檢查不足的漏洞,將惡意腳本注入到網頁中。當用戶訪問該網頁時候,惡意腳本在用戶的瀏覽器端執(zhí)行,從而竊取用戶數據。

    弱口令漏洞

    弱口令漏洞是通常設置容易被別人猜測或被破解工具破解的口令,從而導致泄露敏感信息。

    跨站請求偽造(Cross-Site Request Forgery, CSRF

    攻擊者功過偽裝成合法用戶發(fā)送惡意請求到Web應用,已到達非法授權操作的目的。

    目錄遍歷漏洞

    目錄遍歷漏洞允許攻擊者通過URL中的特殊字符訪問未授權的目錄和文件,導致敏感信息泄露或系統(tǒng)文件被篡改。

    RCE漏洞

    RCE漏洞即遠程代碼執(zhí)行(Remote Code Execution)漏洞,是軟件缺陷導致攻擊者可以在后臺服務器并在上面執(zhí)行任意代碼。

    RCE漏洞是指Web開發(fā)中,開發(fā)人員使用了一些特殊函數,這些函數以一些字符串作為輸入,功能是將輸入的字符串當做代碼或者命令來執(zhí)行。當攻擊者可以控制這些函數的輸入時,就產生了RCE漏洞。正如本文接下來要介紹的PHP-CGI漏洞就是這種安全漏洞。


    2.     PHP-CGI安全事件

    時間:20246

    目標:  使用PHP-CGIWeb服務器

    結果:  Web服務器受到黑客攻擊,所有的文件都被加密鎖住,黑客在服務器目錄下留下勒索文件Read_Me.html,打開后內容如下:

    1.png

    3.     CVE-2024-4577漏洞

    本次攻擊事件是黑客使用locked勒索病毒,通過利用XAMPPPHP-CGI模式下在六月公布的遠程代碼執(zhí)行漏洞CVE-2024-4577后對使用低版本的PHP Web服務器發(fā)起的典型Day1攻擊。

    該漏洞是由DEVCORE團隊發(fā)現(xiàn),PHP-CGI在設計實現(xiàn)時未能考慮Windows平臺的Best-Fit字符編碼轉換特性,使得黑客可以構造特定的請求,繞過安全機制,從而直接在遠程服務器上任意執(zhí)行代碼。當前主要影響特定語系設置的Windows系統(tǒng),包括簡體中文(936),繁體中文(950)以及日文(932), 影響的PHP版本包括PHP8.3(<8.3.8)/PHP8.2(<8.2.20)/PHP8.1(<8.1.29)以及其他可能低于PHP8或者已經不維護的版本。


    漏洞背景原理

    1) PHP CGI

    CGI (Common Gateway Interface通用網關接口是通用網關協(xié)議,可以將客戶端請求傳給其他程序(如PHP),收集程序的輸出再返回給客戶端。PHP-CGI是用于Web服務器和PHP代碼之間的通信,通常用于PHP 5.x版本。也正是在PHP-CGI模式下爆出了CVE-2012-1823這個安全缺陷。


    2) CVE-2012-1823漏洞

    2.png
    該漏洞不能正確處理缺少=(等號)字符的查詢字符串。根據RFC3875規(guī)范,如果查詢字符串缺少未解碼的等號,那么整個查詢字符串應當被視為CGI參數進行傳遞,這給攻擊者帶了注入非法命令行參數的機會,攻擊者可以通過在查詢字符串中添加命令行選項來執(zhí)行任意代碼。

    PHP-CGI的命令行參數如下圖所示:
    3.png

    那么攻擊者如果利用上述參數去構造RCE攻擊呢?他們需要利用以下參數和配置:

    a. -d選項該參數可以通過修改ini條目更改php配置。

    b. allow_url_include設置它為on,可以開啟php://inputphp代碼發(fā)到服務器并執(zhí)行。

    c. auto_prepend_file指定每個php腳本執(zhí)行前自動包含的文件,它是全局的,對所有腳本生效。


    通過上述參數和配置就可以構造出如下攻擊url:
    123.png

    攻擊者只需要將自己的php惡意代碼構造到http內容中,就可以發(fā)送到服務器上并被執(zhí)行從而達到攻擊的目的。


    3Windows ‘Best-Fit’編碼

    PHP后來對上述的CVE-2012-1823漏洞做了修復,只要匹配到上傳參數中沒有=(等號)且第一個字符是-的話,則不會去執(zhí)行并解析命令行。

    Windows ‘Best-Fit’編碼給黑客繞過了這個修復的機會。


    Windows系統(tǒng)使用代碼也來支持不同語言和區(qū)域的字符編碼,如簡體中文使用代碼頁936來映射字符和計算機的數值。如果用戶輸入了代碼頁中不支持的字符,為了能繼續(xù)運行,不能因為無法識別字符而崩潰,Windows使用了Best-Fit這種兼容機制,采用最接近的字符來替換無法識別的字符。

    bestfit936顯示如下的映射部分截取圖所示。
    123.png

    CVE-2024-4577利用了WindowsBest-Fit編碼,使用%ad來替代之前查詢字符串中的-, 則可以繞過之前CVE-2012-1833修復中對-的檢測,而Windows在解析的時候,給轉化成-了,從而又重新完成了命令的執(zhí)行。這也是本次CVE-2024-4577漏洞的根本原因。


    新的RCE攻擊的url格式則被構造如下所示:

    123.png

    4.     CyberFlood漏洞庫抓包示例

    PHP CGI安全漏洞公布后,CyberFloodTestCloud漏洞庫中也迅速更新了此漏洞,我們可以利用測試平臺抓包看一下該漏洞的具體信息。  


    漏洞的信息描述:
    123.png
    把漏洞加入CTA測試模板運行后,抓包可以看到Post的構造的URL跟前文一致。
    123.png

    5.  解決方案建議

    對于此次安全漏洞,推薦如下一些應對措施但不限于:

    •     升級到最新的版本,目前官方已經發(fā)布了PHP版本的更新,修復了漏洞。

    •     加強Web服務器的安全配置,例如限制訪問,使用防火墻規(guī)則等。

    •     使用Web應用防火墻(WAF)來增強防護。

    •     建立良好的備份策略,以便在遭受攻擊時快速恢復。

         

    本  期為大家介紹了CVE-2024-4577 PHP-CGI漏洞的相關知識及原理,后續(xù)我們可以繼續(xù)探討一些相關熱點安全問題,歡迎大家關注思博倫技術公眾號。



    關鍵字:  漏洞,Web安全,PHP,網絡安全,CVE,CyberFlood,RCE,遠程代碼執(zhí)行漏洞,TestCloud,病毒



    <samp id="cmiww"><tbody id="cmiww"></tbody></samp>
    <ul id="cmiww"><pre id="cmiww"></pre></ul>
    <ul id="cmiww"></ul>
    <cite id="cmiww"></cite>
  • <samp id="cmiww"></samp>
    <samp id="cmiww"></samp>
  • <strike id="cmiww"><abbr id="cmiww"></abbr></strike>
    <samp id="cmiww"><tbody id="cmiww"></tbody></samp>
  • <ul id="cmiww"><tbody id="cmiww"></tbody></ul>