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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/9pings/cve-2022-24999
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасность
GitHub9pings/cve-2022-24999

CVE-2022-24999

"qs" уязвимость отравления прототипа (CVE-2022-24999)

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

Популярное

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

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

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

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

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

CVE-2022-24999

Этот репозиторий содержит примеры эксплойтов уязвимости, которую мы нашли в JS-библиотеке "qs" в декабре 2021 года.

  • Эта уязвимость была исправлена в express v4.17.3 & qs v6.10.3 v6.9.7, v6.8.3, v6.7.3, v6.6.1, v6.5.3, v6.4.1, v6.3.3, и v6.2.4.

qs Бомбы массивов и строк

Уязвимые версии "qs" позволяют создавать свойства "proto" на выходных JS-объектах.

Устанавливая массив в свойство “proto”, мы смогли создавать “массивоподобные” объекты.

Поскольку результирующие объекты наследуют прототип “Array”, они предоставляют доступ к нативным функциям массива.

Но так как они все еще являются объектами, “qs” позволяет устанавливать свойство “length” на них.

В качестве примера, следующий payload создаст такой “зловредный” массив:

root@kitploit:~
categories[_proto__]&categories[_proto__]&categories[length]=100000000

Таким образом, установка неразумного значения "length" на них заморозит процесс node, как только он попытается преобразовать их в строки или вызвать большинство нативных функций массива.

Это делает любые Node-приложения, использующие уязвимую версию "qs" с конфигурацией Express по умолчанию и без строгой системы валидации, уязвимыми для DOS-атак на уровне приложения.

Вот пример логов PoC в ./express-qs-string-bomb:

root@kitploit:~
Send payload :  someString[_proto__]&someString[_proto__]&someString[length]=100000000
[server] Received params  { someString: Array { length: '100000000' } }
[server] Run someString + 0
[server] someString + 0 : 6.364s
[server] Run someString == "123" 
[server] someString == "123" : 6.387s
[server] just write `Got ${someString}`
[server] just write `Got ${someString}` : 6.397s

Другие эксплуатируемые поведения

Наш анализ также позволил нам увидеть, что возможны другие способы эксплуатации.

Некоторые из них описаны в каталоге ./qs-vulns.

Благодарности

BRAUN Nathanael & BRISSAUD Johan
Для EY Security, Франция

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