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

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

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

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

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

Категории

Все категории
Loading categories
gitea-follow-existence — Демонстрирует оракул перечисления учётных записей Gitea: аутентифицированный PUT /api/v1/user/following/{username} возвращает 204 для скрытых учётных записей и 404 для неизвестных имён, с лабораторией на loopback. | Kitploit
Инструменты/GitHubGitHub/abraxas/gitea-follow-existence
РазведкаАнализ уязвимостейЭксплуатацияСбор информацииВеб-безопасностьТестирование на ПроникновениеБезопасность APIЛаборатории и Практика

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
abraxas/gitea-follow-existence

gitea-follow-existence

Демонстрирует оракул перечисления учётных записей Gitea: аутентифицированный PUT /api/v1/user/following/{username} возвращает 204 для скрытых учётных записей и 404 для неизвестных имён, с лабораторией на loopback.

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

Abraxas Labs - gitea-follow-existence

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  gitea-follow-existence

Разбор: https://abraxaslabs.tech/research/gitea-follow-existence

gitea-follow-existence

Gitea 1.27.3 - Gitea

GetInfo уже возвращает 404 для скрытых пользователей и лжёт о причине: fake ErrUserNotExist error message to not leak information about existence. PUT /user/following/{username} загружает цель через UserAssignmentAPI() и вызывает Follow. Без IsUserVisibleToViewer. Несуществующее имя: 404 user redirect does not exist. Скрытое имя, которое существует: 204.

204 означает, что аккаунт существует. 404 означает, что вы угадали имя, которого нет. JSON профиля остаётся закрытым.

IDCVE пока нет
CWECWE-203
CVSSСредний: 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
ПродуктGitea
Затронутовплоть до v1.27.3 (146cc3e)
Аутентификацияаккаунт с выполненным входом
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Что может сделать атакующий

Войти в систему (открытая регистрация по умолчанию обходится дёшево). Доказать, что скрытый или ограниченный аккаунт существует, даже когда API профиля возвращает 404. Без выгрузки профиля. Без доступа к приватному git. В сочетании с неаутентифицированными stargazers можно найти скрытый логин на публичном репозитории, а затем подтвердить, что он всё ещё существует после того, как они скрыли профиль.

Check и Unfollow находятся в той же группе. Та же отсутствующая проверка.

Как я это нашёл

Тот же проход по видимости, что и в stargazers. Когда обработчик так старательно лжёт, вы смотрите на каждый другой маршрут, принимающий {username}. Follow — нет.

Я зарегистрировал ограниченного атакующего, подписался на скрытое имя, подписался на имя, которого не существует, и сравнил коды статуса. Публичные пользователи должны возвращать 204. Это не SUCCESS. Скрытое 204 против неизвестного 404, при том что GET возвращает 404, — это SUCCESS.

Уже зафиксированные ложные пути: Follow для скрытого пользователя, возвращающий 404 (тогда видимость проверяется на этом маршруте); JSON профиля для скрытого пользователя (GetInfo уже возвращает 404 — этот баг относится к классу статусов, а не к выгрузке данных); трактовка Follow 204 для публичного пользователя как SUCCESS; обратная оболочка. Театр.

Лаборатория

cd lab
./run.sh

Нацеливайтесь только на http://127.0.0.1:18134. Compose допускает видимость public,limited,private.

get-hidden status=404
follow-hidden status=204
follow-unknown status=404 user redirect does not exist
oracle hidden=204 unknown=404
SUCCESS GITEA-FOLLOW-ORACLE

Исправление

Вызывайте IsUserVisibleToViewer в Follow (а также в Check/Unfollow) перед FollowUser. Скрытые имена должны возвращать 404 так же, как это уже делает GetInfo.

Ссылки

  • github.com/go-gitea/gitea тег v1.27.3
  • follower.go · api.go группа following · GetInfo
  • Тот же тег: gitea-stargazers-hidden
  • CWE-203

Лицензия

GNU Affero GPL v3.0. См. LICENSE. Только для лабораторной среды с loopback. Без гарантий.

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