
PoC уязвимости CSRF и руководство по устранению для деактивации сотрудников в панели администратора. Включает оценку CVSS, шаги воспроизведения атаки и рекомендации по усилению безопасности.
Функциональность «Управление сотрудниками» уязвима для межсайтовой подделки запросов (CSRF).
Злоумышленник может обманом заставить администратора, выполнившего вход в систему, отправить поддельный запрос, который деактивирует сотрудника (например, inid=1) без ведома или согласия администратора.
Векторная строка: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
Модуль: Панель администратора → Сотрудники → Управление сотрудниками
Действие: Деактивация сотрудника (через параметр inid)
Войдите как администратор
/admin и войдите, используя действительные учетные данные администратора.
Откройте «Управление сотрудниками»

Перехватите запрос деактивации
Включите перехват в вашем прокси (например, Burp Suite).
Нажмите Деактивировать на сотруднике и перехватите запрос, который деактивирует пользователя.
Обратите внимание на параметр inid в запросе (например, inid=1).

Создайте PoC для CSRF
inid=1 для деактивации пользователя 1.
Запустите CSRF как жертва
Разместите или откройте HTML-файл PoC в браузере.
Ниже приведен типичный PoC, предполагающий запрос
POSTс параметромinid:
<html>
<body>
<form action="http://localhost/elms/admin/manageemployee.php">
<input type="hidden" name="inid" value="1" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
Сохраните это как csrf_inactivate_emp1.html.
Отправьте/разместите этот файл и заставьте авторизованного администратора загрузить его и нажать кнопку.
Злоумышленник может заставить авторизованного администратора деактивировать произвольных сотрудников, обманом заставив его посетить вредоносную страницу.
Это может привести к:
Несанкционированной деактивации учетных записей, что влияет на доступность учетных записей пользователей.
Нарушению работы (например, отключение сотрудников во время критически важных операций).
Возможному злоупотреблению в сочетании с другими уязвимостями (например, деактивация определенных мониторинговых или привилегированных учетных записей).
Для атаки необходимо только следующее:
Администратор должен быть выполнен вход в систему, и
Администратор должен посетить вредоносный URL/страницу, контролируемые злоумышленником (фишинг, встроенный iframe, вредоносная ссылка и т.д.).
Учитывая, что это напрямую манипулирует управлением пользователями на портале администратора, данную проблему следует считать высокой степенью серьезности.
Внедрите токены защиты от CSRF
Добавьте криптографически защищенный, непредсказуемый токен CSRF во все запросы, изменяющие состояние (например, деактивация, удаление, обновление).
Встраивайте токен в формы в виде скрытого поля.
На стороне сервера проверяйте:
Наличие токена,
Правильность токена и
Связь токена с текущей сессией пользователя.
Отклоняйте запрос, если токен отсутствует или недействителен.
Используйте Same-Site Cookies
Устанавливайте сессионные cookie с атрибутом SameSite=Lax или, по возможности, SameSite=Strict.
Это предотвращает автоматическую отправку cookie в межсайтовых запросах, снижая риск CSRF.
Применяйте правильные HTTP-методы
Убедитесь, что все операции, изменяющие состояние (например, деактивация сотрудника), используют POST (или PUT/DELETE) вместо GET.
Не принимайте важные изменения состояния через GET-параметры.
Проверяйте заголовки Origin / Referer
На чувствительных конечных точках проверяйте заголовок Origin или Referer, чтобы убедиться, что запросы поступают из доверенных доменов.
Если заголовок отсутствует или поступает из ненадежного источника, отклоняйте запрос.
Укрепление интерфейса/рабочего процесса
Добавьте подтверждение на стороне сервера или потоки повторной аутентификации для чувствительных действий (например, деактивация пользователей с ролью администратора).
Пока администратор авторизован в приложении, если он перейдет на эту страницу PoC и отправит форму, пользователь 1 будет деактивирован.

Проверьте результат
Вернитесь на панель администратора → Управление сотрудниками.
Обратите внимание, что пользователь 1 теперь отмечен как Неактивный.

Внедрите надлежащие проверки авторизации, чтобы гарантировать, что только предназначенные роли могут выполнять действие, даже если предпринимается попытка CSRF.
Тестирование безопасности
Включите проверки CSRF в регулярное тестирование безопасности (ручное и автоматизированное).
Повторно протестируйте данную конечную точку (и аналогичные) после внедрения защитных мер, чтобы убедиться, что PoC больше не работает.