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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-43297-POC — إثبات مفهوم لاستغلال CVE-2021-43297، يحقق تنفيذًا عن بُعد للكود في Apache Dubbo <= 2.7.13 عبر إلغاء تسلسل Hessian-Lite. | Kitploit
أدوات/GitHubGitHub/bitterzzzz/cve-2021-43297-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقتطوير الحمولات
GitHubbitterzzzz/cve-2021-43297-poc

CVE-2021-43297-POC

إثبات مفهوم لاستغلال CVE-2021-43297، يحقق تنفيذًا عن بُعد للكود في Apache Dubbo <= 2.7.13 عبر إلغاء تسلسل Hessian-Lite.

عرض المستودع
398منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-43297

وصف الثغرة

توجد مخاطر هجوم تنفيذ الأوامر عن بُعد (RCE) المحتملة في Apache Dubbo Hessian-Lite الإصدار 3.2.11 والإصدارات السابقة. عند مواجهة استثناء في التسلسل (Serialization)، يقوم Hessian-Lite بإخراج معلومات ذات صلة، مما قد يؤدي إلى تشغيل طريقة toString لبعض كائنات Bean الخبيثة المخصصة، وبالتالي التسبب في هجوم RCE.

المبدأ

كان بإمكان الـ POC الأولي تنفيذ RCE فقط على Apache Dubbo <= 2.7.8، والمبدأ موضح في مقال先知 (سيتم تعديله بعد اجتياز المراجعة). بعد تقديم المقال، قمت بدراسة إضافية وتمكنت من تنفيذ RCE على Apache Dubbo <= 2.7.13، وتحليل المبدأ موجود في مقال مدونتي

التأثير كما يلي

شروط استخدام الـ POC:

  • apache dubbo <= 2.7.13 أو الإصدار المقابل من alibaba dubbo
  • معرفة عنوان IP ومنفذ مزود dubbo (dubbo provider)، مع إمكانية الوصول إليه
  • وجود سلسلة XBean في مزود dubbo
  • السماح لخادم مزود dubbo بإرسال طلبات HTTP GET إلى الخارج

تثبيت البيئة وتشغيل الـ POC

  • أولاً قم بتنزيل zookeeper
root@kitploit:~
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz
tar zxvf zookeeper-3.3.3.tar.gz
cd zookeeper-3.3.3
cp conf/zoo_sample.cfg conf/zoo.cfg
  • الإعداد
root@kitploit:~
vim conf/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/绝对路径/zookeeper-3.3.3/data
# the port at which the clients will connect
clientPort=2181
  • قم بتعديل المسار المطلق، وضع ملف myid في دليل data
root@kitploit:~
mkdir data
touch data/myid
  • تشغيل zookeeper
root@kitploit:~
cd /private/var/tmp/zookeeper-3.3.3/bin
./zkServer.sh start
  • تثبيت dubbo-samples-api
root@kitploit:~
git clone https://github.com/apache/dubbo-samples.git
cd dubbo-samples/dubbo-samples-api
  • تعديل ملف dubbo-samples/dubbo-samples-api/pom.xml
root@kitploit:~
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>dubbomytest</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <properties>
        <source.level>1.8</source.level>
        <target.level>1.8</target.level>
        <dubbo.version>2.7.6</dubbo.version>
        <junit.version>4.12</junit.version>
        <docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
        <jib-maven-plugin.version>1.2.0</jib-maven-plugin.version>
        <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
        <maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
        <image.name>${project.artifactId}:${dubbo.version}</image.name>
        <java-image.name>openjdk:8</java-image.name>
        <dubbo.port>20880</dubbo.port>
        <zookeeper.port>2181</zookeeper.port>
        <main-class>org.apache.dubbo.samples.provider.Application</main-class>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-common</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper</artifactId>
            <version>2.7.3</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.apache.xbean</groupId>
            <artifactId>xbean-naming</artifactId>
            <version>4.15</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

</project>
  • حزمة xbean

يجب تثبيتها على كل من جانب المزود (provider) والمحلي، والاعتماديات كالتالي

root@kitploit:~
<dependency>
    <groupId>org.apache.xbean</groupId>
    <artifactId>xbean-naming</artifactId>
    <version>4.15</version>
</dependency>
  • الترجمة والتشغيل

أضف dubbo-samples-api في IDEA، وانتبه لتعديل منافذ zookeeper و dubbo، كما قم بتعديل الكود في Application.java:

root@kitploit:~
service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":" + zookeeperPort+"/?timeout=250000"));

لمنع فشل الاتصال بسبب بطء اتصال إصدارات dubbo الأعلى بـ zookeeper

قم بتشغيل Application.java في dubbo-samples-api داخل IDEA

بعد التشغيل، ظهور dubbo service started يعني أن dubbo قد بدأ بنجاح

  • تشغيل الـ poc أضف الاعتماديات محلياً:
root@kitploit:~
<dependency>
   <groupId>org.apache.dubbo</groupId>
   <artifactId>dubbo-common</artifactId>
   <version>2.7.3</version>
</dependency>
<dependency>
   <groupId>org.apache.dubbo</groupId>
   <artifactId>dubbo</artifactId>
   <version>2.7.3</version>
</dependency>
<dependency>
   <groupId>org.apache.dubbo</groupId>
   <artifactId>dubbo-dependencies-zookeeper</artifactId>
   <version>2.7.3</version>
   <type>pom</type>
</dependency>
<dependency>
   <groupId>com.caucho</groupId>
   <artifactId>hessian</artifactId>
   <version>4.0.51</version>
</dependency>

قم بتجميع ExecTest.java، ثم عدّل مسار ExecTest.class في HttpServer.java، ثم نفّذ طريقة HttpServer.main، وأخيراً نفّذ طريقة HessianLitePoc.main

تنزيل الأداة