
POC لـ CVE-2023-32681
هذا تطبيق بلغة Python 3 لـ CVE-2023-32681، والذي يؤثر على العملاء الذين يستخدمون requests الإصدار <= 2.30.0.
وفقًا لـ https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4 عندما يقوم الخادم بإعادة التوجيه 3xx، يجب على وكيل المستخدم تعديل الطلب لإزالة بعض الرؤوس والحقول من الطلب.
يمكن العثور على تفاصيل تلك الحقول في https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4-5. فيما يتعلق بهذه الثغرة، قمت بتسليط الضوء على الجزء ذي الصلة هنا.

لم يقم الإصدار <= 2.30.0 من مكتبة requests بإزالة رأس "Proxy-Authorization" أثناء التعامل مع إعادة التوجيه إلى "https"، مما أدى إلى تسريب بيانات اعتماد الوكيل إلى الخادم المعاد توجيهه.
يمكن العثور على مزيد من التفاصيل في
/redirect يعيد توجيه حركة المرور إلى الخادم الثاني الذي يعمل على المنفذ 4431./echoHeaders. يعيد هذا المسار الرؤوس التي استلمها في الطلب إلى العميل.Proxy-Authorization، يُقال إن إصدار requests معرض لـ "CVE-2023-32681".certFile و keyFile في server/main.go.go run server/main.go. سيؤدي ذلك إلى بدء خادمين يستمعان على المنفذين 443 و 4431.go run proxy/main.go. سيبدأ خادم الوكيل على المنفذ 8080.pip3 install -r script/requirements_request_2_30_0.txtpython3 script/poc.py ولاحظ المخرجات. يمكنك رؤية أن رأس "Proxy-Authorization" يتم إرجاعه بواسطة الخادم في الرد. كما يطبع الخادم الرؤوس المستلمة في السجلات.pip3 install -r script/requirements_request_2_31_0.txtpython3 script/poc.py ولاحظ المخرجات. يمكنك رؤية أن رأس "Proxy-Authorization" لم يعد موجودًا الآن في رد الخادم. يمكن التحقق من ذلك أيضًا في سجلات الخادم.
