
استغلال إثبات مفهوم لثغرة CVE-2023-38545، وهي ثغرة تجاوز سعة المخزن المؤقت في curl. يتضمن خادم وكيل SOCKS5 وخادم HTTP لتفعيل الثغرة وتحديد مدى تعرض النظام.
يحتوي هذا المستودع على إثبات مفهوم (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
يمكنك أيضًا تشغيل الخادم مع تسجيل تصحيح الأخطاء
$ 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