jueves, 25 de agosto de 2011

CheatSheet to bypass uploaders

1. Escribir la extensión del archivo alternando mayúsculas/minúsculas (.pHp, .PHp, .pHP...)
2. Uso de extensiones menos conocidas (.php5..)
3. Doble extensión (.jpeg.php)
4. Mandar una cabecera HTTP con el MIME type modificado por uno que admita (image/gif, image/JPEG)
5. Incluir al inicio del archivo la cabecera de una extensión permitida (GIF89a)
6. Añadir al final del nombre del archivo espacios y/o puntos (shell.php ... ......)
7. Usar null bytes
8. Incluir caracteres extraños (";", "&", "[" => shell.php;jpeg)
9. Bypass getimagesize() => Incluir la shell dentro de los metadatos de una imagen real (usando 0verLFI) y después modificar el MIME type
10. Abuso de la normalización de rutas (shell.php/./././[...])
11. Subida de un .htaccess que cambie las extensiones de los archivos ( ForceType application/x-httpd-php )

Estas son las que se me vienen ahora a la cabeza, si a alguien se le ocurre alguna más que la postee en los comentarios.
5 0verl0ad Labs: CheatSheet to bypass uploaders 1. Escribir la extensión del archivo alternando mayúsculas/minúsculas (.pHp, .PHp, .pHP...) 2. Uso de extensiones menos conocidas (.php5..)...

7 comentarios:

seth dijo...

El 5 y el 9 son casi lo mismo, no?
El 6 puede ser "shell.php.", no se si sirve agretarle mas
Faltaria /./././././././././[...] (lee php filesystem attack vectors 1 y 2)
El 7 sirve para cuando comprueban el final de la extension: shell.phpNULL.jpg
Tambien puede ir un .htaccess que haga ejecutar las imagenes como php (eso no me lo enseñaste vos?)

Podrias hacer un programa que pruebe todo esto, no?

The X-C3LL dijo...

Buenas Seth!

Voy a añadir lo del bypass usando la normalización de rutas (está bastante interesante el paper). Lo de subir un .htaccess para ejecutar una imagen (en caso de no haber podido subir un PHP) no se me había ocurrido, también la apunto. Ese truco solía usarlo para ocultar los exploits de CSRF y que pasasen desapercibidos como imágenes

The X-C3LL dijo...

PD: voy a intentar codear algo, a ver qué quimera me sale.

Anónimo dijo...

Excelente, del metodo "ForceType application" me entere para el tiempo de su publicación y me a servido de mucho, muy útil para simular contenido estatico.

yo lo he usado para simular .zip y .exe, la persona cree que la url accede a la descarga de un archivo estatico, pero en realidad accede a un script que genera dinamicamente un zip con contenido (.exe) encriptado o un exe encriptado (los dos tipos de archivos),es una forma de servir contenido "estatico" polimorfico, al final es estúpido el método, es querer complicar las cosas (KISS), pero es solo un ejemplo...

por cierto muy buen blog lo sigo desde hace unos años.

Saludos

The X-C3LL dijo...

@Anonimo muchas gracias :)

Ya he codeado algo, ahora publico un post con la herramienta.

Anónimo dijo...

De donde podemos descargar la herramienta? :D se ve buena!!! 10/10 xDD

The X-C3LL dijo...

@Anonimo puedes mirar el historial de post... Aquí la publiqué: http://0verl0ad.blogspot.com/2011/08/0verbypasspl-herramienta-para-auditar.html

Tienes que adaptarla para el uploader que quieres testear.

< >