
إثبات مفهوم لاختبار CVE-2023-38545 ضد curl المحلي
يحتوي هذا المستودع على إثبات مفهوم (PoC) مصمم لاختبار الأنظمة بحثًا عن ثغرة CVE-2023-38545. تؤثر الثغرة على أداة curl، وتحديدًا الإصدارات بين 7.69.0 و8.3.1، وترتبط بمعالجة عمليات إعادة توجيه HTTP.
البرامج المطلوبة: curl
يتكون إثبات المفهوم من مكوّنين رئيسيين:
هذه الخطوة اختيارية إذا كان لديك بالفعل وكيل socks5 يمكنك استخدامه.
نفّذ setup_socks5.sh
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
سيؤدي ذلك إلى تثبيت التبعيات المطلوبة وإعداد خادم وكيل SOCKS5 على المنفذ 1080.
نفّذ الأمر التالي لبدء خادم HTTP:
$ python3 server.py
يمكنك أيضًا تشغيل الخادم مع تسجيل التصحيح (debug logging)
$ python3 server.py --debug
عند التنفيذ بنجاح، سيكون خادم HTTP يستمع على المنفذ 8000.
أولًا، اجعل السكربت قابلاً للتنفيذ:
$ chmod +x cve202338545.sh
يمكن ضبط السكربت ليقبل عنوان وكيل socks5 عبر --socks5-ip وعنوان http عبر --http-ip، ويمكنه إخراج سجلات التصحيح عبر --DEBUG
$ ./cve202338545.sh --socks5-ip <ip> --http-ip <ip> --DEBUG # specify both proxy and http server
$ ./cve202338545.sh --socks5-ip <ip> # specify only proxy server
$ ./cve202338545.sh --http-ip <ip> # specify only http server
$ ./cve202338545.sh # both proxy and http server will default to localhost
$ ./cve202338545.sh --DEBUG # both proxy and http server will default to localhost with debug on
سيؤدي ذلك إلى بدء الاستغلال، وينبغي أن ترى مخرجات تشير إلى ما إذا كان النظام عرضة للثغرة، أو غير عرضة لها، أو إذا كان الاختبار غير حاسم.
توجد 4 حالات للاستجابة:
هذه الخطوة مطلوبة فقط إذا استخدمت setup_socks5.sh من الخطوة 1.
لتنظيف خادم وكيل SOCKS5، نفّذ الأمر التالي:
$ ./cleanup.sh