sábado, 27 de marzo de 2010

Path traversal an other issues

Hoy voy a hablar, de saltarse ciertas restricciones mediante la codificiación de caracteres, mediante la manipulación de la entrada así como de la própia vulnerabilidad en sí: "Path traversal".

En primer lugar, comentar que en algunas aplicaciones (sean web o no), disponen de una vulnerabilidad que permite acceder a recursos en los que en un principio no se les permite el acceso. Esto se debe a que se hace una referencia hacía un objeto:

http://unawebcualquiera.com/index.php?file=info.txt

En esta petición, se está haciendo referencia al archivo info.txt incluyendo su contenido en la aplicación. Ahora bien, que es lo que pasaría si en lugar del archivo "info.txt" quisiesemos que nos incluyese el archivo "/etc/passwd". Para ello, deberíamos hacer referencia a este archivo, por lo que debemos utilizar los "../" para escalar directorios:


En esta imagen se puede ver el contenido del archivo "etc/passwd" y como hacemos referencia a él mediante los ../.

Para solucionar este problema, deberíamos evitar que se pudiese introducir esa cadena. Si tan solo se elimina "../" es posible saltarse esta restricción, ya que si se realiza una cadena que al eliminar los "../" quede de la misma forma.

"..././..././..././"

Otra de las formas, de evitar esta posible restricción, es mediante el uso de la codificación de carácteres, en algunos casos, según como se trate los carácteres se puede realizar mediante: "%2e%2e/"