Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2018-18912 — Desbordamiento de búfer basado en SEH en Easy File Sharing Web Server 7.2 que demuestra cómo un parámetro HTTP POST autenticado puede corromper la cadena del manejador de excepciones. | Kitploit
Herramientas/GitHubGitHub/themalwareguardian/cve-2018-18912
Análisis de VulnerabilidadesExplotaciónIngeniería InversaShellcodeExplotación de Aplicaciones WebDepuradoresAprendizaje y EducaciónDesarrollo de PayloadsExplotación de Binarios

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
GitHubthemalwareguardian/cve-2018-18912

CVE-2018-18912

Desbordamiento de búfer basado en SEH en Easy File Sharing Web Server 7.2 que demuestra cómo un parámetro HTTP POST autenticado puede corromper la cadena del manejador de excepciones.

Ver Repositorio
1hace 4 mesesAún no revisado

🐞 CVE-2018-18912: Easy File Sharing Web Server 7.2 - Desbordamiento de búfer basado en pila (SEH)

Desbordamiento de búfer basado en SEH en Easy File Sharing Web Server 7.2 que demuestra cómo un parámetro HTTP POST autenticado puede corromper la cadena del manejador de excepciones.




📑 Tabla de contenidos

  • Por qué existe este repositorio
  • Por qué esta vulnerabilidad es interesante
  • Contexto y software afectado
  • Acerca de la vulnerabilidad
  • Provocando el fallo
  • Explotación



🎓 Por qué existe este repositorio

Este repositorio forma parte del material que utilizo al enseñar explotación de corrupción de memoria (además de mi trabajo habitual, también enseño en diferentes cursos de ciberseguridad donde ayudo a formar a la próxima generación de ingenieros inversos).

CVE-2018-18912 es el caso que uso para dar el salto de las sobrescrituras de EIP básicas a la explotación basada en SEH. Una vez que los estudiantes entienden cómo funciona una sobrescritura directa de la dirección de retorno, el siguiente paso es comprender qué sucede cuando la pila está tan corrupta que el programa desencadena una excepción antes de retornar, y cómo esa cadena de manejadores de excepciones se convierte en la superficie de ataque. Este CVE demuestra esa transición de manera limpia: el desbordamiento es lo suficientemente profundo como para alcanzar la cadena SEH, y la ruta de explotación sigue la técnica clásica de POP POP RETN que todo desarrollador de exploits debe entender. La omisión opcional de DEP mediante ROP se deja como una ampliación para los estudiantes que quieran ir más allá: el mismo desbordamiento, una estrategia de gadgets diferente, un problema mucho más difícil.




💡 Por qué esta vulnerabilidad es interesante

Esta vulnerabilidad afecta a Easy File Sharing Web Server 7.2, una aplicación ligera de servidor web para Windows que se utilizaba ampliamente para compartir archivos de forma sencilla. El software fue escrito sin tener en cuenta las mitigaciones modernas de seguridad. Lo que hace que este caso sea particularmente interesante desde una perspectiva pedagógica es la combinación de factores involucrados:

  • Se requiere autenticación, pero solo a un nivel básico. Esto modela un escenario en el que un atacante ha obtenido credenciales, lo que es común en la post-explotación del mundo real.
  • El desbordamiento está basado en SEH. El fallo no sobrescribe la dirección de retorno directamente. En su lugar, corrompe la cadena del Structured Exception Handler (Manejador de Excepciones Estructuradas) en la pila, lo que requiere una técnica de explotación diferente.
  • El endpoint vulnerable es una solicitud POST. Fácil de reproducir con herramientas HTTP estándar y familiar para cualquiera que haya trabajado con aplicaciones web.
  • La omisión de DEP es opcional. El exploit funciona con un enfoque directo de SEH + salto corto + shellcode en sistemas donde DEP está deshabilitado. Si DEP está habilitado, el mismo desbordamiento se puede extender con una cadena ROP utilizando gadgets de ImageLoad.dll para llamar a VirtualProtect antes de transferir el control al shellcode.

Esta combinación hace de CVE-2018-18912 un caso excelente para enseñar técnicas de desarrollo de exploits más allá de lo básico.




🔍 Contexto y software afectado

Easy File Sharing Web Server 7.2 es una aplicación de Windows que permite a los usuarios compartir archivos a través de HTTP. Incluye funcionalidades como navegación de archivos, autenticación de usuarios y un sistema de foro integrado.

Descargar herramienta

La funcionalidad del foro acepta solicitudes POST para crear nuevos temas. Uno de los campos del formulario manejado por este endpoint es el parámetro author. Internamente, la aplicación copia este valor controlado por el usuario en un búfer de pila de tamaño fijo sin validar la longitud.

La vulnerabilidad fue descubierta y reportada en 2018. El PoC original se publicó poco después, demostrando tanto el fallo como una cadena de explotación funcional que incluía gadgets ROP del módulo ImageLoad.dll incluido.

Detalles técnicos clave:

  • Tipo de vulnerabilidad: Desbordamiento de búfer basado en pila (SEH)
  • Versión afectada: Easy File Sharing Web Server 7.2
  • Endpoint afectado: POST /forum.ghp
  • Parámetro vulnerable: author
  • Impacto: Ejecución remota de código



⚠️ Acerca de la vulnerabilidad

Easy File Sharing Web Server procesa solicitudes HTTP POST dirigidas a /forum.ghp cuando un usuario crea un nuevo tema en el foro. Uno de los parámetros aceptados es author, que se copia en un búfer local de la pila sin ninguna comprobación de longitud.

Al realizar ingeniería inversa del binario, se puede observar que el manejador de este campo del formulario utiliza un búfer de tamaño fijo y una operación de copia no segura. Una versión simplificada de la lógica vulnerable se ve así:

root@kitploit:~
char author_buffer[64];

strcpy(author_buffer, user_input);

Dado que el búfer de destino tiene un tamaño fijo y la longitud de la entrada no se valida, enviar una cadena suficientemente larga en el campo author provoca que la copia escriba más allá del final del búfer.

A medida que se escriben más datos, el diseño de la pila se corrompe. A diferencia de una simple sobrescritura de la dirección de retorno, el desbordamiento alcanza la cadena del Structured Exception Handler (SEH) almacenada en la pila. Cuando se desencadena una excepción como resultado de la pila corrupta, el sistema operativo recorre la cadena SEH y transfiere el control a la dirección del manejador controlada por el atacante.

Por lo tanto, el flujo de explotación sigue la técnica de sobrescritura de SEH:

  1. Una entrada larga sobrescribe la pila, incluidos los punteros nSEH y SEH.
  2. Se desencadena una excepción debido a la corrupción de memoria.
  3. El sistema operativo invoca la dirección del manejador sobrescrita.
  4. Se utiliza un gadget POP POP RETN para transferir la ejecución al área nSEH.
  5. Un salto corto hacia adelante omite el registro SEH y redirige la ejecución al área del shellcode.
  6. El shellcode se ejecuta.

Esto hace que la vulnerabilidad sea más compleja de explotar que una sobrescritura básica de EIP, pero también más representativa de escenarios del mundo real.




💥 Provocando el fallo

El fallo se puede reproducir enviando una cadena larga en el parámetro author de una solicitud POST a /forum.ghp después de autenticarse con credenciales válidas. Ejemplo usando Python:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 500

request = (
	b"POST /forum.ghp?forumid=1 HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Content-Type: application/x-www-form-urlencoded\r\n"
	b"Cookie: UserID=test; PassWD=test; SESSIONID=1234\r\n"
	b"Connection: close\r\n"
	b"\r\n"
	b"author=" + payload + b"&passwd=test&title=test&content=test&Submit=Submit\r\n"
)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()

Cuando se ejecuta bajo un depurador, el fallo muestra una cadena SEH corrupta y una violación de acceso, lo que confirma que los datos controlados por el usuario han sobrescrito el puntero del manejador de excepciones.




💣 Explotación

El objetivo de este repositorio no es solo demostrar el fallo, sino también guiar paso a paso a través del proceso completo de explotación, siguiendo la metodología utilizada al desarrollar exploits reales basados en SEH.

Para mantener limpio el README principal, las notas detalladas de explotación, scripts y pasos del depurador se colocan dentro de la carpeta Vulnerability 📂 de este repositorio.

Allí encontrarás el flujo de trabajo completo utilizado para explotar este CVE, que incluye:

  • Fuzzing del parámetro author para identificar el fallo.
  • Descubrimiento de desplazamiento para localizar la posición exacta de nSEH y SEH en la pila.
  • Análisis de caracteres no válidos para identificar bytes que corrompen el payload.
  • Sobrescritura de la cadena SEH utilizando un gadget POP POP RETN de un módulo cargado.
  • Ubicación y ejecución del shellcode.