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

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

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

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

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

Категории

Все категории
Loading categories
plausible-editor-invite — Plausible Analytics master d44e104 — высокий уровень — удалённо — остаточные привилегии — редактор people HTML утечки передача nanoid | Kitploit
Инструменты/GitHubGitHub/abraxas/plausible-editor-invite
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеЛаборатории и Практика
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
abraxas/plausible-editor-invite

plausible-editor-invite

Plausible Analytics master d44e104 — высокий уровень — удалённо — остаточные привилегии — редактор people HTML утечки передача nanoid

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

Abraxas Labs - plausible-editor-invite

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  plausible-editor-invite

plausible-editor-invite

Plausible Analytics community edition, GitHub master d44e104ae3943a9240d5cb6b62e67dff0f069d3a (2026-10-16) - Plausible Insights OÜ

Класс: остаточные привилегии (утечка токена приглашения). Доступ: удалённый (гостевой редактор или командный редактор этого сайта).

Sites.list_people/1 выбирает необработанные guest_invitations.invitation_id и team_site_transfers.transfer_id. settings_people.html.heex помещает этот 21-символьный nanoid в id="invitation-#{invitation.invitation_id}" для каждой ожидающей строки. Настройки People не входят в @special_cased_actions SiteController, поэтому AuthorizeSiteAccess разрешает :editor. Гостевой редактор соответствует роли сайта :editor. Гостевой просмотрщик получает 404.

Nanoid.generate/0 — это bearer-токен регистрации по приглашению. Неаутентифицированный GET /register/invitation/:invitation_id ищет только по id. LiveView register перезаписывает отправленный email на invitation.email. По умолчанию в CE DISABLE_REGISTRATION=invite_only и ENABLE_EMAIL_VERIFICATION=false. Принятие — это POST /sites/invitations/:id/accept через сопоставление email citext.

Гостевой редактор, который уже может видеть HTML страницы People, читает nanoid ожидающей передачи владения, регистрируется как приглашённый и принимает приглашение. Сайт переходит в личную команду атакующего.

IDCVE пока нет
CWECWE-200 / CWE-269
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
ПродуктPlausible Analytics
ЗатронутоGitHub master d44e104ae3943a9240d5cb6b62e67dff0f069d3a (2026-10-16). Последний тег CE v3.2.1 (e4f5a87a5570bd61605217e7ceb376636db8eddb, 2026-05-15) отстаёт на пять месяцев. SECURITY.md рекомендует операторам запускать :latest. Закреплён текущий HEAD. CE MIX_ENV=ce компилирует только lib/.
Аутентификацияаутентифицированный гостевой редактор (:guest_member, :editor) или командный редактор этого сайта. Не без аутентификации. Не гостевой просмотрщик.
ЛицензияGNU Affero GPL v3.0
Лаборатория127.0.0.1:18180 (http) 18181 (postgres) 18182 (clickhouse http) только

Остаток №1 из Plausible Analytics leftovers. Тот же пин, другой пакет: plausible-traffic-notify (массовое присваивание site_id в PUT traffic-change-notification). Этот пакет — тот, что похищает ожидающую передачу владения.

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

Аутентифицированный гостевой редактор или командный редактор сайта, у которого есть ожидающее гостевого приглашения и/или передача владения. Нужен обычный сессионный cookie. Без владельца, без администратора, без LiveView супер-администратора. Они не подбирают 21-символьный nanoid. Они читают его из HTML, который им разрешено загружать, затем регистрируются как приглашённый.

Таблица привилегий (исчерпывающая). Тот же уровень, что и Signal-Server Dropwizard admin: метод + путь, что даёт этот вызов, разведка против целостности против доступности, доказано в лаборатории против выведено, смежная поверхность, которая остаётся закрытой.

ОсьМетод + путьЧто даётПроисхождение
РазведкаGET /:domain/settings/people от имени гостя/редактора командыОжидающие строки рендерят id="invitation-<nanoid>". Nanoid — это invitation_id или transfer_id. Только тот же сайт. Email приглашённого также есть в таблице.Подтверждено в лаборатории. Editor people 200 раскрыл nanoid Hc8DiBC2q08mv5LFmBysu
Разведканеаутентифицированный GET /register/invitation/:idEmail приглашённого в форме регистрации. Поиск только по id (find_by_id_unified).Подтверждено в лаборатории. HTML регистрации показал [email protected]
ЦелостностьLiveView register на /register/invitation/:idОтправленный user[email] перезаписывается на invitation.email. Новый CE-аккаунт на адрес приглашённого. Проверка email в CE по умолчанию отключена. Режим только по приглашениям всё равно допускает :invitation.Подтверждено в лаборатории. Отправлен [email protected]; сохранённый email — [email protected]
ЦелостностьPOST /sites/invitations/:id/accept от имени этого нового аккаунтаОжидающая передача владения переносит sites.team_id на личную команду newowner. Строка передачи исчезает.Подтверждено в лаборатории. sites.team_id 1 → 2
Целостностьтот же accept для ожидающего приглашения гостя на этот emailНовое членство на этом сайте (редактор-за-редактора — не выигрыш). Другие ожидающие строки team/guest/transfer для этого email также становятся доступными для принятия.Исходный код (InvitationController.accept_invitation)
Доступностьпосле принятия передачиИсходная команда теряет сайт. Статистика продолжает работать на новой команде.Подтверждено в лаборатории. team_id перемещён

Остаётся закрытым на этом пине

ОсьМетод + путьПочему закрыто
РазведкаGET /:domain/settings/people от имени гостя-наблюдателя404. Наблюдатель — не :editor. Подтверждено в лаборатории.
ЦелостностьPOST /sites/invitations/:id/accept редактором для утёкшего transfer idСовпадение email. Редактор — не [email protected]. Сайт остаётся в команде 1. Подтверждено в лаборатории.
Целостностьнеаутентифицированная регистрация без валидного id приглашенияcheck_registration_enabled(:default) против :invitation. whoareme Bug 02, исправлено.
Разведкаперебор 21-символьного nanoidURL-безопасный алфавит, 21 символ. Вне рамок этой недоделки.
Разведкасобытия ClickHouse, SMTP, страницы people других сайтовТолько тот же сайт. Нет админ-доступа к ClickHouse. Нет чтения почты.
Целостностьприглашение и передача от owner/adminОни и так могут. Эта недоделка — про редактора, который не может.
ЦелостностьLiveView супер-админа, OS shell, EE SSO в extra/libЗакрыто. CE-лаборатория. Нет shell.

Я не заявляю о неаутентифицированном захвате аккаунта уже зарегистрированного пользователя, reverse shell или дампе ClickHouse. Экземпляр High — это ожидающая передача владения (или приглашения на другие сайты/команды для этого email) на дефолтном CE: режим только по приглашениям плюс отключённая проверка email. EE всегда устанавливает email_verified: false, а /activate требует почтовый ящик приглашённого.

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

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