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-2020-13768 — Desbordamiento de búfer basado en pila en MiniShare 1.4.1 alcanzable mediante una única petición HTTP PUT. | Kitploit
Herramientas/GitHubGitHub/themalwareguardian/cve-2020-13768
Análisis de VulnerabilidadesExplotaciónShellcodeDepuradoresSeguridad WebFuzzingPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de Payloads
Explotación de Binarios
GitHubthemalwareguardian/cve-2020-13768

CVE-2020-13768

Desbordamiento de búfer basado en pila en MiniShare 1.4.1 alcanzable mediante una única petición HTTP PUT.

Ver Repositorio
2hace 5 mesesAú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

🐞 CVE-2020-13768: MiniShare 1.4.1 - Desbordamiento de búfer basado en pila

Desbordamiento de búfer basado en pila en MiniShare 1.4.1 alcanzable mediante una única petición HTTP PUT.




📑 Tabla de contenidos

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



🎓 Por qué existe este repositorio

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

CVE-2020-13768 es un caso que uso cuando quiero mostrar cómo servidores simples expuestos a la red pueden exponer desbordamientos de búfer basados en pila clásicos a través de métodos de protocolo estándar. El endpoint vulnerable no requiere autenticación, el desbordamiento es una sobrescritura directa de EIP, y la ruta de explotación es limpia y bien definida. Es un caso ideal para aprender la metodología completa de explotación en un escenario remoto realista sin autenticación.

Lo que también hace interesante este caso como ejercicio docente es que la misma causa raíz, entrada sin sanear copiada en un búfer de pila de tamaño fijo, aparece en múltiples entradas CVE para el mismo binario. CVE-2018-19861, CVE-2018-19862 y CVE-2019-17601 describen la misma clase de vulnerabilidad, solo que reportada por diferentes investigadores a través de diferentes métodos HTTP o endpoints. Esto enseña a los estudiantes a fijarse en las causas raíz y no solo en los números de CVE.




💡 Por qué esta vulnerabilidad es interesante

Esta vulnerabilidad afecta a MiniShare 1.4.1, un servidor HTTP ligero para Windows, discontinuado, diseñado para el intercambio local sencillo de archivos. El software fue escrito sin tener en cuenta las prácticas modernas de seguridad. Lo que hace este caso particularmente interesante desde una perspectiva docente es la combinación de factores implicados:

  • No requiere autenticación. El método HTTP PUT se procesa sin ninguna comprobación de credenciales. Cualquier atacante remoto en la red puede provocar la vulnerabilidad con una única petición manipulada.
  • Un método de protocolo estándar como vector de ataque. El desbordamiento se desencadena mediante una petición HTTP PUT, no mediante un protocolo personalizado o un comando oscuro. Esto ilustra cómo los métodos de protocolo estándar y bien conocidos pueden transportar cargas útiles de explotación con la misma eficacia que las interfaces propietarias.
  • Sobrescritura directa de EIP. El desbordamiento alcanza y sobrescribe directamente la dirección de retorno guardada, lo que convierte este caso en un desbordamiento de búfer de pila clásico (vanilla) sin cadena SEH implicada.
  • Múltiples CVEs, mismo binario. CVE-2018-19861, CVE-2018-19862 y CVE-2019-17601 describen la misma clase de vulnerabilidad en el mismo software. Se asignaron distintas entradas CVE porque diferentes investigadores reportaron diferentes métodos HTTP o endpoints, pero al aplicar ingeniería inversa al binario queda claro que todas comparten la misma causa raíz: entrada sin sanear copiada en un búfer de pila de tamaño fijo sin validación de longitud.

Esta combinación convierte a CVE-2020-13768 en un excelente caso para enseñar los fundamentos de la explotación de desbordamientos de búfer en red en un escenario realista sin autenticación.




🔍 Contexto y software afectado

MiniShare es un servidor HTTP minimalista para Windows diseñado originalmente para el intercambio local rápido de archivos en una LAN. Escucha en el puerto TCP 80 y gestiona un pequeño subconjunto de métodos HTTP, incluyendo GET y PUT. El manejador PUT procesa las peticiones entrantes y copia la ruta URI en un búfer de pila de tamaño fijo sin validar su longitud.

Detalles técnicos clave:

  • Tipo de vulnerabilidad: Desbordamiento de búfer basado en pila
  • Versión afectada: MiniShare 1.4.1 y anteriores
  • Endpoint afectado: Petición HTTP PUT
  • Componente vulnerable: Gestión de la ruta URI en el manejador PUT
  • Autenticación requerida: No
  • Impacto: Ejecución remota de código



⚠️ Sobre la vulnerabilidad

MiniShare procesa las peticiones HTTP entrantes y las distribuye al manejador adecuado según el método. El manejador PUT extrae la ruta URI de la petición y la copia en un búfer de pila de tamaño fijo sin comprobar su longitud.

Una versión simplificada de la lógica vulnerable se ve así:

root@kitploit:~
char path_buffer[256];

strcpy(path_buffer, uri_path);

Dado que el búfer de destino tiene un tamaño fijo y la longitud de la entrada no se valida, enviar una URI suficientemente larga en la petición PUT hace que la copia escriba más allá del final del búfer, alcanzando y sobrescribiendo eventualmente la dirección de retorno guardada (EIP) en la pila.

Cuando la función vulnerable retorna, la CPU carga el valor controlado por el atacante desde la pila en EIP y salta a él. Si esa dirección apunta a datos controlados por el atacante que contienen shellcode, se consigue la ejecución de código arbitrario.




💥 Provocando el crash

El crash se puede reproducir enviando una URI de tamaño excesivo en una petición HTTP PUT. No se requiere autenticación. Ejemplo usando Python:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 3000

request = (
	b"PUT /" + payload + b" HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Connection: close\r\n"
	b"\r\n"
)

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

Cuando se ejecuta bajo un depurador, el crash muestra EIP sobrescrito con datos controlados por el usuario:

root@kitploit:~
EIP = 41414141

lo que confirma que la dirección de retorno guardada ha sido corrompida por el desbordamiento.




💣 Explotación

El objetivo de este repositorio no es solo demostrar el crash, sino también recorrer el proceso completo de explotación paso a paso, siguiendo la metodología utilizada al desarrollar exploits reales basados en pila.

Para mantener el README principal limpio, las notas detalladas de explotación, los scripts y los pasos de depuración se encuentran en la carpeta Vulnerability 📂 de este repositorio.

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

  • Fuzzing de la URI PUT para identificar el crash.
  • Descubrimiento del offset para localizar la posición exacta de EIP en la pila.
  • Análisis de caracteres malos para identificar los bytes que corrompen la carga útil.
  • Localización de un gadget JMP ESP en un módulo cargado sin ASLR.
  • Colocación y ejecución del shellcode.