
استغلال إثبات المفهوم لـ CVE-2018-19131: ثغرة XSS في Squid Proxy عبر شهادة X.509
لا تفعل أي شيء غير قانوني بهذا. هذا ليس برنامجًا ضارًا. هذا مجرد إثبات للمفهوم.
هذا عرض توضيحي لـ CVE-2018-19131، والذي يعمل ضمن تطبيق Docker Compose.

تبني هذه المكتبة إصدار Squid 3.5.27، وهو إصدار ضعيف. الإصدار 3.5.28 ليس ضعيفًا. الإصدارات المحددة المتأثرة مدرجة هنا.
نجح الاختبار على كل من Windows 10 و Mac OS X Mojave.
لا تقم بتشغيل هذا على نفس المضيف الذي قمت بتكوينه كوكيل منه، لأن الوكيل سيعيد توجيه جميع طلبات HTTP إلى نفسه. يجب أن يكون العميل والخادم جهازين منفصلين.
git clone https://github.com/JonathanWilbur/CVE-2018-19131.git.cd CVE-2018-19131.docker-compose up.
إعداد وكيل HTTPS هو أمر قياسي للغاية. يتوفر في Windows و MacOS. Linux لديه أي شيء إذا كنت مبدعًا. لن أوثق كيفية إعداد وكيل هنا، لأنه موثق بالفعل على نطاق واسع في مكان آخر. فقط قم بتكوين جهاز الكمبيوتر الخاص بك للإشارة إلى الخادم الذي قمت بتثبيت مثيل Squid الضعيف عليه.
سألاحظ، مع ذلك، أنه يجب عليك استخدام وكيل HTTPS، وليس HTTP. على MacOS، في إعدادات Proxies، يُسمى هذا Secure Web Proxy. لا يميز Windows بينهما.
قم بالوصول إلى الموقع الخبيث عن طريق الاتصال بـ https://web. اقبل أول خطأ في الشهادة، والذي يحدث فقط بسبب اعتراض الوكيل لحركة HTTPS، ثم ستظهر لك الصفحة التالية التي ستشغل الاستغلال. يجب أن ترى تنبيهًا في متصفح الويب يقول HACKED!.
بعد النقر على OK، سترى صفحة Squid الافتراضية لفشل الاتصال الآمن. ستلاحظ أن اسم المُصدر/الموضوع المعروض - وهما نفس الشيء، لأن هذا يستخدم شهادة موقعة ذاتيًا - يفتقد السمة commonName (CN). وذلك لأن قيمتها كانت:
<script>alert("HACKED!");</script>
والتي يتم تفسيرها على أنها HTML خام وبالتالي يتم تنفيذ البرنامج النصي!
إذا كنت ترغب في اقتراح إصلاحات أو تحسينات على هذه المكتبة، فيرجى فقط ترك مشكلة في صفحة GitHub هذه. إذا كنت ترغب في الاتصال بي لأسباب أخرى، فيرجى مراسلتي عبر البريد الإلكتروني على [email protected] (مفتاح GPG الخاص بي) (شهادة TLS الخاصة بي). 🐗