Вы находитесь на странице: 1из 9

____________________________________________________________

_________________
Uso de Componentes con Vulnerabilidades conocidas.
Subir Archivo (File Upload)
1. Introduccin
Con el avance del internet a nivel global, las personas cada vez ms buscan alternativas
de informacin en toda la web. De hecho, el internet se ha vuelto una parte importante
en la vida diaria de las personas ya que ayudan a que la mayora de procesos sean ms
cmodos al realizarlos desde el hogar, como pueden ser transacciones bancarias,
organizacin de eventos, creacin de pginas web, aplicaciones web e incluso peticin
de cualquier clase de servicio a domicilio. Como siempre una de las prioridades del ser
humano es estar seguro o al menos estar con esa sensacin, por tal razn, la seguridad
juega un papel importante en el desarrollo del internet.
Con la comprensin de la tecnologa tambin surgen nuevas ideas en las personas, no
todas buenas, que de una u otra manera perjudican al resto de personas conectadas a
dichas tecnologas. Aqu es donde surge la necesidad de comprender no solo la
tecnologa sino tambin las vulnerabilidades, en un marco de prevencin de ataques.
De esta preocupacin mencionada en los prrafos anteriores nacen algunas
organizaciones dedicadas al anlisis de dichas vulnerabilidades que de cualquier forma
son un peligro para el normal desarrollo de las personas dentro del gran mundo del
internet. Entre esas organizaciones hay que destacar a OWASP, que ao tras ao est
en la lucha a favor de la seguridad informtica, y por tal motivo, muestra un
lanzamiento de las vulnerabilidades de los sistemas que ms se repiten durante el ao.
El conocimiento de la existencia de dichas vulnerabilidades nos dan una ayuda a la
hora de navegar por el internet, al crear aplicaciones que estn disponibles en la red,
etc., para poder tomar las precauciones debidas antes de lanzar una aplicacin o
pgina al internet. A continuacin, en el presente documento se realiza el anlisis de
una de las diez vulnerabilidades que ms se han encontrado en los sistemas durante el
2013 segn el ranking de OWASP. Esta vulnerabilidad se llama File Upload.
2. Fundamentos del ataque escogido
Para el anlisis en el presente documento se escogi una vulnerabilidad del listado de
las 10 vulnerabilidades de OWASP que es File Upload dentro de Uso de
Componentes con Vulnerabilidades Conocidas. Los archivos subidos
representan un riesgo significativo para las aplicaciones. El primer paso en muchos
ataques es conseguir algo de cdigo para el sistema a ser atacado. Luego del ataque slo
tiene que encontrar la manera de obtener el cdigo ejecutado. El uso de un archivo de
carga ayuda al atacante lograr el primer paso.
Las consecuencias de la carga de archivos sin restricciones pueden variar, incluyendo
adquisicin completa del sistema, un sistema de archivos sobrecargada o base de datos,
transmisin de ataques a sistemas back-end y sencilla desconfiguracin. Depende de lo
que hace la aplicacin con el archivo cargado y, especialmente, donde se almacena.
En realidad, hay dos clases de problemas aqu. La primera es con los metadatos del
archivo, como el nombre de la ruta y el archivo. Estos son generalmente
proporcionados por el transporte, tales como HTTP de varias partes de codificacin.
Estos datos pueden engaar a la aplicacin en sobrescribir un archivo crtico o guardar
el archivo en una mala ubicacin. Usted debe validar los metadatos muy
cuidadosamente antes de usarlo.
La otra clase de problema es con el tamao de archivo o contenido. La gama de
problemas aqu depende totalmente de lo que el archivo se utiliza. Vea los ejemplos a
continuacin algunas ideas sobre cmo podran ser mal archivos. Para protegerse
contra este tipo de ataque, debe analizar todo lo que su aplicacin hace con los archivos
y pensar cuidadosamente acerca de lo que el procesamiento y los intrpretes estn
involucrados [1].
3. Categoras del ataque
En esta vulnerabilidad prcticamente solo tiene un categora que es la de introducir
archivos a las aplicaciones web o servidores que piden subir archivos, para mediante
estos archivos tratar de entrar al sistema y realizar un primer escaneo antes de realizar
algn otro ataque. Si es que habra la categorizacin, sera ms bien en el nivel de
seguridad del programa para hacer frente a las vulnerabilidades, ya que segn las
validaciones y otros aspectos a tomar en cuenta como el tamao del archivo, se podr
realizar una aplicacin web ms segura. En este aspecto se distinguen se podra
categorizar en tres niveles: bajo, medio y alto. Esto refirindose al nivel de
programacin de la aplicacin web o la pgina.
4. Anlisis bibliogrfico del ataque
Para permitir que un usuario final para subir archivos a su sitio web, es como abrir otra
puerta a un usuario malintencionado poner en peligro su servidor. A pesar de que, en
las modernas aplicaciones web de Internet de hoy en da, es un requisito comn, ya que
ayuda a aumentar la eficiencia de su negocio. La carga de archivos se permiten en las
aplicaciones web de redes sociales, como Facebook y Twitter. Tambin se les permite
en blogs, foros, sitios de banca electrnica, YouTube y tambin en los portales
corporativos de apoyo, para dar la oportunidad al usuario final para compartir archivos
de manera eficiente con los empleados corporativos. Los usuarios pueden subir
imgenes, videos, avatares y muchos otros tipos de archivos.
Cuanta ms funcionalidad proporcionada al usuario final, mayor es el riesgo de tener
una aplicacin web vulnerable y la posibilidad de que dicha funcionalidad se abus de
los usuarios maliciosos, para obtener acceso a un sitio web especfico, o poner en
peligro un servidor es muy alta.
En el anlisis de las prximas secciones se realizar un entrenamiento en 2 casos de
ataque: el uno cuando la aplicacin web no posee ninguna validacin antes de subir el
archivo y la otra cuando pide dos validaciones.
5. Anlisis de una aplicacin de entrenamiento
DVWA es una aplicacin web basada en PHP y SQL. Esta permite el anlisis de
algunas vulnerabilidades que estn realizndose o que se podran realizar en las
aplicaciones y pginas de internet. Dentro de esta aplicacin existe una seccin para
lograr un ataque al subir un archivo del tipo .jpg. Para el funcionamiento correcto de
esta aplicacin es necesario tener instalado en el sistema operativo los servicios de
mysql y de Apache. Estos servicios son los que utiliza DVWA para realizar el
entrenamiento y el ataque dentro de la mquina. Una aplicacin que nos instala y nos
brinda los servicios anteriormente mencionados es XAMPP. Esto nos ayuda a
interpretar la aplicacin mediante el navegador. Una vez instalado la aplicacin nos
muestra una ventana como la que se observa en la figura 1, donde se ven los servicios
que estn corriendo en la mquina.
Fig. 1. XAMPP, corriendo los servicios.

6. Identificacin de una aplicacin web susceptible al ataque


DVWA al ser una aplicacin vulnerable para todos los ataques dentro de la lista del top
10 de OWASP, es una de las herramientas ms tiles para realizar dicho ataque. En la
actualidad la mayora de pginas tienen programacin que validan casi todo los
archivos por lo que es difcil encontrar una aplicacin vulnerable. Pero DVWA nos da la
opcin de entender mejor este ataque mediante la implementacin de una aplicacin
web vulnerable. Por tal razn el ataque se realizar a la aplicacin web de DVWA. La
aplicacin web tiene la apariencia como se muestra en la figura 2.
Fig. 2. DVWA

La aplicacin que se utilizar ser la UPLOAD como se muestra en la figura 3. Una vez
ingresado a la aplicacin se proceder como sigue en la seccin 7.

Fig. 3. Aplicacin Upload

7. Descripcin de Procesos realizados para el ataque escogido.


El ataque tiene dos niveles como ya se haba mencionado en secciones anteriores. El
primer nivel, bajo, se menciona a continuacin con los procesos respectivos.
NIVEL BAJO. Aplicacin sin validaciones de archivos.
En esta parte se muestra una aplicacin web susceptible que tiene un cdigo sin mucha
validacin. Para el anlisis de este nivel se procede como sigue:
a. Se procede a seleccionar el nivel bajo dentro del DVWA, como se muestra
en la figura 4.

b. Una vez seleccionado el nivel de seguridad se procede a ingresar a la


aplicacin como se muestra en la figura 3. Una vez aqu se puede mirar el
cdigo de la aplicacin y se verifica que no hay demasiadas validaciones
como se muestra en la figura 5.

Fig. 5. Script para subir el archivo.

Al no haber ninguna restriccin en el archivo a subir en cuanto a la


extensin, entonces se puede subir incluso otro script donde se pueda
modificar la aplicacin web o el servidor a donde se sube el archivo.
c. Aunque la aplicacin pide que se suba una imagen, se puede subir cualquier
tipo de archivo para ejecutar, por ejemplo un script que obtenga
informacin. Esto por lo mencionado en el punto b. A continuacin se
proceder a subir un Shell que lista archivos que estn en el servidor de la
aplicacin. Esto se muestra en las figuras 6 y 7.
Fig. 6. Subida del archivo.

Fig. 7. Ejecucin del Shell desde la mquina del atacante.

d. Como se puede apreciar el nivel bajo de seguridad en la aplicacin, da


oportunidad al atacante de subir cualquier tipo de archivo al servidor y
poder mediante este escanear el servidor. Para evitar eso se puede
incrementar las restricciones en las aplicaciones que suben los archivos
como se ver en el siguiente nivel de seguridad.
NIVEL MEDIO. Aplicacin con validaciones de extensin y tamao.
Aqu lo que se pretende que el usuario no suba archivos que no sean de las extensiones
permitidas. Sin embargo, con las herramientas adecuadas se puede buscar
vulnerabilidades en los scripts de las aplicaciones.
Las herramientas que se utilizarn para esta parte son BurpSuite y FoxyProxy, esta
ltima es una extensin del navegador Firefox.
BurpSuite es una aplicacin de Java para poder interceptar comunicaciones y poder
cambiar los headers de archivos de paquetes que se envan a servidores externos.
FoxyProxy en cambio es una extensin que enva los paquetes del navegador al proxy
de BurpSuite, para que este sea el que enve los paquetes luego de analizarlos al
servidor en donde se encuentra la aplicacin web.
a. Lo primero que se hace es configurar tanto el BurpSuite como el FoxyProxy. Lo
nico que hay que indicar al BurpSuite es el puerto por el cual va a escuchar la
comunicacin. En el FoxyProxy, en cambio, hay que indicar el servidor proxy de
BurpSuite, que en nuestro caso ser de la mquina local, que es la mquina
atacante. La configuracin de FoxyProxy queda como en la figura 8.
Fig. 8. Configuracin de FoxyProxy en el navegador.

b. Ahora se proceder a verificar que si se intenta subir un archivo con diferente


extensin que la de .jpg, no permitir. Esto se puede apreciar en la figura 9.

Fig. 9. Error al subir el archivo con diferente extensin.

c. Como no se pudo subir el archivo, ahora se proceder a utilizar el complemento


mencionado y la interceptacin con BurpSuite. Antes de realizar lo que se hace
es ocultar la extensin del archivo original, que puede ser el script
anteriormente mencionado, aadiendo la extensin permitida por el servidor.
Esto se muestra en la figura 10.

Fig. 10. Cambio de extensin.

d. Ahora, antes de intentar subir el archivo se cambiar el header del archivo para
modificar la extensin, antes de subirlo al servidor. Este procedimiento se
muestra en las figuras 11, 12 y 13.
Fig. 11. Interceptacin del paquete a ser subido al servidor

Fig. 12. Cambio de la extensin del archivo. Antes de ser subido.


v

Fig. 13. Archivo subido, cuadro rojo.


Como se puede apreciar se ha podido vulnerar el tipo de archivo que se puede subir,
que no necesariamente puede ser del tipo que pide el servidor. Los scripts que se
pueden subir pueden ser de muchos tipos desde aquellos que solo escanean el servidor,
hasta los que sacan informacin importante.

8. Mtodos de mitigacin del ataque:


i. Enfoque: desarrollador de una aplicacin web.
El nico mtodo para evitar estos tipos de ataques, son las
consideraciones que el programador tenga en cuenta al momento
de realizar el programa web, teniendo en cuenta las validaciones
y que los archivos pueden ser interceptados antes de ser subidos.
ii. Enfoque: Usuarios de una aplicacin web.
Los usuarios frente a este tipo de ataques no tienen muchas
opciones ya que depende en su mayora de lo que el programador
haga, aunque siempre es bueno tener buenas prcticas
informticas donde se evite la interceptacin de paquetes
mediante la instalacin de programas o incluso extensiones de
navegadores que no brinden la privacidad en la conexin.

9. Conclusiones
Como se ha visto en el documento, hay muchas maneras de cmo un usuario
malintencionado puede eludir formulario de carga de archivos de seguridad.
Por esta razn, en la aplicacin de una forma de carga de archivos en una
aplicacin web, hay que asegurarse de seguir las directrices de seguridad
correctas. Desafortunadamente, para realizar el nmero de pruebas requeridas,
puede tomar mucho tiempo y requieren una buena cantidad de expertos en
seguridad web.

Si bien esta vulnerabilidad es muy conocida, todava sigue siendo una de las
ms utilizadas ya que por el incremento de servicios web y de sus aplicaciones,
cada vez ms existen formas de evitar la verificacin por parte de los servidores
y aplicaciones.

10. Referencias:
[1] https://www.owasp.org/index.php/Unrestricted_File_Upload
[2]http://www.redinfocol.org/dvwa-conociendo-y-explotando-diferentes-
vulnerabilidades-level-low/

Вам также может понравиться