elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Metodo PUT en servidor web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Metodo PUT en servidor web  (Leído 10,406 veces)
TapIt

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Metodo PUT en servidor web
« en: 9 Noviembre 2012, 12:42 pm »

Muy buenas!

Mi duda es sencilla pero creo que no tengo los conocimientos suficientes para entender lo que está ocurriendo.

Realizo una petición OPTIONS a un servidor y obtengo como respuesta:

Código:
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS


Posteriormente intento utilizar el metodo PUT y obtengo el siguiente mensaje:

Código:
HTTP/1.1 403 Prohibido
Date: Fri, 09 Nov 2012 11:38:12 GMT
Server: Apache/2.2.3 (Red Hat)
Content-Length: 973
Connection: close
Content-Type: text/html;charset=utf-8

<html><head><title>Apache Tomcat/5.0.30 - Informe de Error</title><style>

</style> </head><body><h1>Estado HTTP 403 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Informe de estado</p><p><b>mensaje</b> <u></u></p><p><b>descripción</b> <u>El acceso al recurso especificado () ha sido prohibido.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/5.0.30</h3></body></html>[/move]

Alguien sabe a que se debe esto?

Muchas gracias por antelación. Saludos ;)
« Última modificación: 9 Noviembre 2012, 12:44 pm por TapIt » En línea

Busca y encontrarás...
adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Metodo PUT en servidor web
« Respuesta #1 en: 10 Noviembre 2012, 15:37 pm »

 SI el servidor web soporta el método PUT, puedes subir ficheros al servidor, PERO... algunos servidores web no permiten subir ficheros con contenido ejecutable (con extensión .php, asp, jsp, etc.) si intentas subir un fichero con extensión TXT, seguramente te dará 2 código HTTP consecutivos (HTTP 101 y HTTP 201). En dicho fichero puedes poner lo que quieras (contenido ejecutable por ejemplo) y posteriormente puedes utilizar el método COPY o MOVE para renombrar dicho fichero y hacerlo ejecutable.
De todos modos, enseñanos cual es el comando que ejecutas y como lo ejecutas...
En línea

TapIt

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Metodo PUT en servidor web
« Respuesta #2 en: 10 Noviembre 2012, 18:31 pm »

Hola adastra! En primer lugar muchas gracias por tu respuesta.
Intentaré explicarte como estoy realizando los pasos lo mejor posible.

Para la ejecución de las sentencias estoy utilizando Burp Suite en la que he marcado como target la web que estoy auditando.

Posteriormente he realizado la siguiente sentencia:

Código:
OPTIONS /*****/*****/File/ HTTP/1.0

y tengo como respuesta lo siguiente.

Código:
HTTP/1.1 200 OK
Date: Sat, 10 Nov 2012 17:23:24 GMT
Server: Apache/2.2.3 (Red Hat)
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS
Content-Length: 0
Connection: close
Content-Type: text/plain; charset=UTF-8

Posteriormente he realizado la siguiente sentencia a modo de prueba. (Si lo que he leido es cierto debería crearme un fichero vacío de texto)
Código:
PUT /*****/*****/File/miprueba.txt HTTP/1.0

A lo que me devuelve lo siguiente:

Código:
Server: Apache/2.2.3 (Red Hat)
Content-Length: 973
Connection: close
Content-Type: text/html;charset=utf-8

<html><head><title>Apache Tomcat/5.0.30 - Informe de Error</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>Estado HTTP 403 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Informe de estado</p><p><b>mensaje</b> <u></u></p><p><b>descripción</b> <u>El acceso al recurso especificado () ha sido prohibido.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/5.0.30</h3></body></html>

He puesto asteriscos en las carpetas intermedias para no postear las realaes.Si quieres que te indique el servidor sobre el que estoy realizando la auditoría no tengo ningún problema en pasartelo por privado.No tengo intención de defacearlo ni nada, simplemente soy una persona que quiere aprender.

Gracias otra vez! Saludos

En línea

Busca y encontrarás...
ameise_1987

Desconectado Desconectado

Mensajes: 119



Ver Perfil
Re: Metodo PUT en servidor web
« Respuesta #3 en: 10 Noviembre 2012, 19:21 pm »

intenta escribiendo la peticion completa, agregando las cabeceras comunes de la peticion incluyendo el content-length, ten cuidado con este ya que un caracter de mas o de menos hace la diferencia.

lo otro que puede ser es que la carpeta no tenga permisos de escritura, para encontrar una carpeta que tenga permisos de escriture, utiliza google hacking "site:server.com.ar ( ext:doc | ext:pdf )" , con esto "podrias encontrar una ruta del servidor con permisos de escritura".

por ultimo aqui habia un proyecto que te facilitaba el trabajo aplicando fuerza bruta a las rutas.
http://foro.elhacker.net/nivel_web/crawler_put_analizer_primera_beta_python-t349847.0.html


EDIT: lo ultimo que se me olvidaba, aparte de ser permitido el metodo PUT debe ser PUBLICO.
« Última modificación: 10 Noviembre 2012, 19:23 pm por ameise_1987 » En línea

firma retirada por insultar/cachondearse de (anelkaos) del staff.
TapIt

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Metodo PUT en servidor web
« Respuesta #4 en: 10 Noviembre 2012, 21:23 pm »

Gracias por tu respuesta ameise_1987!

Bueno por partes, he probado a generar la peticion tal y como me comentabas de esta forma.

Código:
PUT /****/*****/File/miprueba.txt HTTP/1.1
Host: www.*****.es
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Cookie: usercode=; passwd=; __utma=168011234.1689716079.1352471299.1352564320.1352567111.6; __utmz=168011234.1352471399.1.2.utmccn=(organic)|utmcsr=google|utmctr=|utmcmd=organic; JSESSIONID=E2DB0504E635CBD1B3CBDB184624B934; __utmc=168011234
DNT: 1
Cache-Control: max-age=0
Content-Length: 0

Lo que he hecho simplemente ha sido generar una petición con el navegador, hacerla pasar por Burp y cambiarla para generear una petición PUT en lugar de GET. También le he añadido la cabecera Content-Length: 0 ya que el fichero que estoy intentando subir está vacío.(Si he leido bien en internet, esa cabecera corresponde al numero de Bytes enviados al servidor)

La respuesta ha sido la misma.

Por otra parte respecto a la busqueda de directorios que comentabas es una tarea bastante sencilla. La página no está protegida frente a esto y los indexa todos. He realizado la prueba en directorios tales como /doc /img /apps y otros varios pero nada...

Hay muchos directorios indexados en la web asique seguire probando con otros.Voy por buen camino? Content-Lenght es lo que yo creo que es? Si quisiera añadir codigo a miprueba.txt simplemente debería añadirlo al final de la petición no?

Siento la chapa. Muchisimas gracias!
En línea

Busca y encontrarás...
ameise_1987

Desconectado Desconectado

Mensajes: 119



Ver Perfil
Re: Metodo PUT en servidor web
« Respuesta #5 en: 10 Noviembre 2012, 23:04 pm »

content-length  es la cantidad de caracteres del archivo, pero insisto que aparte de estar permitido el metodo PUT debe ser PUBLICO.

 :rolleyes:
En línea

firma retirada por insultar/cachondearse de (anelkaos) del staff.
TapIt

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Metodo PUT en servidor web
« Respuesta #6 en: 11 Noviembre 2012, 15:07 pm »

Pues nada supongo que el método PUT será privado y es por eso que no puedo subir archivos =( jajaja. Muchisimas gracias a los 2 por vuestra ayuda
En línea

Busca y encontrarás...
adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Metodo PUT en servidor web
« Respuesta #7 en: 11 Noviembre 2012, 17:14 pm »

 Vale, intenta lo siguiente.
Desde Burp selecciona la pestaña "repeater", en realidad no necesitas interceptar nada, solamente hacer una petición HTTP PUT, no es necesario capturar ninguna petición.
Desde la pestaña "repeater" en host, pones la dirección IP o el nombre de dominio del objetivo y en port el puerto del servidor (intenta poniendo tanto IP como dominio para probar).
En el área de texto pones esto:






Código:
PUT /test.txt HTTP/1.1 
Host: x.x.x.x


Esto es una prueba

Donde x.x.x.x es la dirección IP. Luego le das al botón "go".


En la pestaña inferior te aparecerá la respuesta del servidor. No es necesario que especifiques el Content-Length ya que Burp lo calcula automáticamente al hacer la petición.
 
 
En línea

TapIt

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Metodo PUT en servidor web
« Respuesta #8 en: 11 Noviembre 2012, 18:23 pm »

Hola adastra, lo que tu me comentas era el modo en el que yo estaba realizando las peticiones al servidor. De todas formas he probado a hacerlo como tu comentabas (con la ip, sin content-length... etc) y sigue saliendo el mismo error.

Sinceramente creo que al hacer la petición OPTIONS me esta dando un falso positivo y PUT está deshabilitado porque sino no me lo explico.

Pero bueno no pasa nada, el tiempo que llevo pegandome con esto he conseguido aprender a utilizar Burp, a entender mejor el sistema de cabeceras del protocolo HTTP y alguna cosillas más asique nada, a seguir auditando. Me da rabia porque yo creo que la web es muy explotable, pero todavía me falta conocimiento... :)

Saludoss y gracias!
En línea

Busca y encontrarás...
ksian

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Metodo PUT en servidor web
« Respuesta #9 en: 15 Junio 2013, 02:23 am »

¿Y cómo te das cuenta que un metodo es publico?
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como puedo copiar este archivo de servidor a servidor??
PHP
neoshadybeat 2 4,134 Último mensaje 21 Mayo 2007, 09:32 am
por dominioswww
[Python] invocar metodo desde metodo.
Scripting
Hesp 2 7,031 Último mensaje 8 Marzo 2009, 00:38 am
por Hesp
Servidor de correos y Servidor de archivos bajo freeBSD
GNU/Linux
spectre89 3 6,029 Último mensaje 25 Julio 2010, 06:41 am
por unixgeek
Problemas conexion a servidor con batch y ejecutar una shell dentro del servidor
Scripting
andrespp 0 2,971 Último mensaje 13 Octubre 2011, 17:40 pm
por andrespp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines