
Proof-of-Concept exploit of CVE-2018-19131: Squid Proxy XSS via X.509 Certificate
Не делайте ничего незаконного с этим. Это не вредоносное ПО. Это всего лишь proof-of-concept.
Это демонстрация 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, и, следовательно, скрипт выполняется!
Если вы хотите предложить исправления или улучшения для этого проекта, пожалуйста, просто оставьте заявку (issue) на этой странице GitHub. Если вы хотите связаться со мной по другим причинам, напишите мне на [email protected] (Мой GPG-ключ) (Мой TLS-сертификат). 🐗