CRLF Injections: Infectando descargas

Documentandome un poco acerca de las CRLF Injections y de HTTP response Splitting, me he topado con un paper del blog de InyeXion (http://inyexion.com.ar/?num=113) que habla acerca de cómo infectar descargas usando esta técnica, aquí os la explico brevemente (recomiendo hechar un ojo al paper de InyeXion)


Un código PHP vulnerable a Source Code Disclosure, debido a que permite la descarga de cualquier tipo de archivo, puede convertirse en un vector de ataque para poder intrusear a una víctima. Tenemos un PHP como este:

header(”Content-Type: application/octet-stream”); header(”Content-Disposition: attachment; filename=”.$_REQUEST[”file”]);


Existen una serie de caracteres que HTTP utiliza como señales para dar saltos de línea y demás, estos caracteres son CR (carriage return) y LF (Line Feed), cuya representación es 0x0D y 0x0A.

Volviendo al ejemplo anterior en PHP, tendríamos una web para descargarnos archivos tipo www.miweb.com/descargas.php?file= , donde en file= pondríamos el archivo a descargar, véase por ejemplo:

www.miweb.com/descargas.php?file=programa.bat

Ahora bien, si a esa URL, le añadimos dos saltos de línea, el texto que haya acontinuación se transferirá como si fuese el propio código fuente del archivo. Por ejemplo, si añadiésemos %0d%0a%0d%0anc -l -p 57 -e cmd , se produciría el doble salto de linea, haciendo que nuestro archivo programa.bat contenga esas líneas, que lo que hacen es colocar una shell en el puerto 57.


Como podeis ver, esta técnica puede ser ampliable en su uso, y buscarse otros código s a inyectar en otras extensiones... todo lo que hay que tener es imaginación.

HTTP al descubierto (PDF)

################################################################
# Title: HTTP al descubierto #
# Authors: Vengador de las Sombras & Sknight #
# Website: http://0verl0ad.blogspot.com #
# Date: 11-9-2008 #
# Contact: camaleon_18@hotmail.com & Lix.security@gmail.com #
# Maqueteado para Diosdelared by MurdeR
################################################################

[-------------Index-------------]
0x01: Introducción al protocolo HTTP
/.0x01 Estructura de HTTP y sus cabeceras
/.0x02 Metodos HTTP
0x02: Sniffeo y Modificación de Cabeceras
0x03: Inyectando Código
/.0x03 CRLF Injecton: Descargas Infectadas (Introducción al HTTP Splitting)
/.0x04 XSS & SQL injections
/.0x05 PHP injections
0x04: Enumeración a través de HTTP
/.0x06 Sacar información con OPTIONS
/.0x07 Banner Grabbing
/.0x08 Http Fingerprinting
0x05: Contraataques, Evitando la identificación de nuestro servidor
0x06: Ataques con Metodos
/.0x9 Creacion y Borrado de ficheros (PUT y DELETE)
/.0x10 Authorization
0x07: Links de interés & Despedida
[-------------Index-------------]

Link: DESCARGA