domingo, 22 de junio de 2014

Provocar errores para obtener informacion

Cuando comenzamos una auditoria , lo primero que llevamos a cabo es realizar la etapa de FingerPrinting ,
y una de las partes principales de esa etapa consiste en obtener el servidor al que se va a auditar , una de las cosas que podemos hacer es una uno de esos escanearodes que con una par de comandos se encargan de decirlos la version del servidor por ejemplo Httprint , Nmap , pero que pasa si el servidor tiene un filtro y no revela nada o falsea la informacion o por ultimo el programa que elegimos no funciona con el servidor que tiene nuestro objetivo.
En esta entrada les mostrare una forma de obtener tanto el servidor como la version del mismo , sin usar ningun programa extra solo el navegador web , primero un poco de teoria la mayoria de servidores web esta diseñado para devolvernos un Códigos de estado HTTP ( estos códigos de estatus están especificados por el RFC 2616) , de acuerdo a la peticion que hagamos no importa que tipo de recurso solicitamos si es un jpg , html , php , etc.
La mayoría de personas solo conocen dos tipos de errores el 200 (Respuesta Correcta) y el 404 (Recurso de encontrado ) , sin embargo existen muchos tipos de estado HTTP que podemos probocar causal o intencionalmente

Por ejemplo


100 (Continue), el navegador puede continuar realizando su petición (se utiliza para indicar que la primera parte de la petición del navegador se ha recibido correctamente).
101 (Switching Protocols), el servidor acepta el cambio de protocolo propuesto por el navegador (puede ser por ejemplo un cambio de HTTP 1.0 a HTTP 1.1).
102 (Processing (WebDAV)), el servidor está procesando la petición del navegador pero todavía no ha terminado (esto evita que el navegador piense que la petición se ha perdido cuando no recibe ninguna respuesta).
103 (Checkpoint), se va a reanudar una petición POST o PUT que fue abortada previamente.
Códigos de estado 2XX
Indican que la petición del navegador se ha recibido, procesado y respondido correctamente:
200 (Ok), la petición del navegador se ha completado con éxito.
201 (Created), la petición del navegador se ha completado con éxito y como resultado, se ha creado un nuevo recurso (la respuesta incluye la URI de ese recurso).
202 (Accepted), la petición del navegador se ha aceptado y se está procesando en estos momentos, por lo que todavía no hay una respuesta (se utiliza por ejemplo cuando un proceso realiza una petición muy compleja a un servidor y no quiere estar horas esperando la respuesta).
203 (Non-Authoritative Information), la petición se ha completado con éxito, pero su contenido no se ha obtenido de la fuente originalmente solicitada sino de otro servidor.
204 (No Content), la petición se ha completado con éxito pero su respuesta no tiene ningún contenido (la respuesta sí que puede incluir información en sus cabeceras HTTP).
205 (Reset Content), la petición se ha completado con éxito, pero su respuesta no tiene contenidos y además, el navegador tiene que inicializar la página desde la que se realizó la petición (este código es útil por ejemplo para páginas con formularios cuyo contenido debe borrarse después de que el usuario lo envíe).
206 (Partial Content), La respuesta de esta petición sólo tiene parte de los contenidos, tal y como lo solicitó el propio navegador (se utiliza por ejemplo cuando se descarga un archivo muy grande en varias partes para acelerar la descarga).
207 (Multi-Status (WebDAV)), la respuesta consiste en un archivo XML que contiene en su interior varias respuestas diferentes (el número depende de las peticiones realizadas previamente por el navegador).
208 (Already Reported (WebDAV)), el listado de elementos DAV ya se notificó previamente, por lo que no se van a volver a listar.
idera permanente.utilizar el código 404.

La lista completa la pueden encontrar en :
http://librosweb.es/tutorial/los-codigos-de-estado-de-http/

Aparte de los Códigos de estado HTTP , tambien estan los errores en PHP , ASP y los errores propios de servidor al no poder intepretar un solicitud

Por ejemplo que si solicitamos un peticion  con un salto de linea , algo que se puede hacer de manera muy simple añadiendo %0a al final de la consulta , obtenemos lo siguiente.




Como pueden ver usa JAVA y el servidor APACHE TOMCAT/6.0.37

Otra opción bastante interesante es provocar el error 403 , accediendo a un recurso no permitido como una carpeta donde estan los archivos css , js ,etc.



Como se puede apreciar  se intento acceder a la ruta http://www.***************.com/static/css/yaml/core/ , que es una carpeta donde se guarda los archivos de sistemas y obtuvimos como respuesta la version del servidor y su sistema operativo APACHE/2.2.14 (RED HAT).

Como tercer ejemplo podemos colocar un <script>alert(0)</script> o %0a en una url ASP , para provocar errores tambien debo decir que para evitar eso en apache podemos configurar el archivo .htaccess , eso es todo por esta entrada , me voy pero no sin antes decirles que uno de los ejemplos es de un sitio web universitario y el otro de un canal televisivo local , y recordarles que Todo estan complejo antes de ser sencillo