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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-44906 — Доказательство концепции для CVE-2021-44906, демонстрирующее прототипное загрязнение в minimist через обход Function.prototype, с рабочими примерами и подробным техническим анализом цепочки эксплуатации. | Kitploit
Инструменты/GitHubGitHub/nevermoe/cve-2021-44906
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийОбучение и Образование
GitHubnevermoe/cve-2021-44906

CVE-2021-44906

Доказательство концепции для CVE-2021-44906, демонстрирующее прототипное загрязнение в minimist через обход Function.prototype, с рабочими примерами и подробным техническим анализом цепочки эксплуатации.

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

Популярное

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

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

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

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

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

CVE-2021-44906

Оригинал: https://github.com/Marynk/JavaScript-vulnerability-detection/blob/main/minimist%20PoC.zip

Запуск

root@kitploit:~
npm run hack

И вы увидите, что свойство done любой функции изменится на true. Пояснение команды node index.js --_.concat.constructor.prototype.done true:

  • -- — это дефис, обычно используемый в аргументах командной строки.
  • _ — встроенный ключ в minimist: https://github.com/minimistjs/minimist/blob/v1.2.5/index.js#L37
  • .concat.constructor.prototype.done true устанавливает _.concat.constructor.prototype.done в true. Поскольку _.concat.constructor имеет тип Function, ко всем прототипам Function будет добавлено свойство с именем done.

Причина такой длинной цепочки прототипов в том, что в предыдущих исправлениях разработчик заблокировал __proto__, Arrary.prototype, Object.prototype, Number.prototype и String.prototype. Поэтому мы вынуждены использовать constructor, у которого есть свойство prototype и который не находится в чёрном списке.

Другой пример:

root@kitploit:~
npm run hack2

Однако в обоих примерах мы можем изменять только значения, а не определения функций.

Причина

В исправлении CVE-2020-7598 (1.2.2) и в версии 1.2.3 разработчик уже устранил некоторые уязвимости, проверяя __proto__, Arrary.prototype, Object.prototype, Number.prototype, String.prototype, но забыл проверить Function.prototye. Именно поэтому данная эксплуатация может затронуть только свойство Function. В исправлении этой CVE разработчик добавил проверку Function.prototype, а также constructor: https://github.com/minimistjs/minimist/blob/v1.2.6/index.js#L73

Скачать инструмент