/* Variable definitions ==================== */ /* Use this with templates/template-twocol.html */ -->

Chat-Kasper MH

HTTP al descubierto

Posted by kasp3r11 14:04, under |

1º ¿Que es HTTP?
HTTP son las siglas de
hipertexto)
Hipertext Transfer Protocol (en español Protocolo de transferencia de
2º ¿De donde salió HTTP?
Cuando la WWW (
persona que dispusiera de una computadora. Asi mismo HTTP fue el

protocolo creado para
realizar todas las operaciones web.
World Wide Web) se desarrolló, internet se abrio a las puertas de cualquier
3º ¿Que es HTML?
H
predomina en el desarrollo web. Es usado para definir la estructura del documento y su respectivo
contenido de hipertexto.
yperText Markup Language (Lenguaje HiperTexto de Marcado) es el lenguaje de marcado que
4º URL y URI
URL significa Uniform Resource Locator (localizador uniforme de recurso). Es un conjunto de
caracteres, de acuerdo a un formato, que se usa para nombrar recursos
URI es Uniform Resource Identifier (identificador uniforme de recurso) definido en este link [1]
Empezemos, nada más realizar nuestra petición el servidor nos manda el código de respuesta [2]
200. Los códigos de rango 2xx indican que la operación se ha realizado con éxito, y ahora la
cabecera [3]:
Cache-Control:
de la petición/respuesta.
Genera las directivas que deben ser usadas por cualquier mecanismo a lo largo
Connection:
Indica que la conexión se cierra, no se mantiene como en keep-alive
Date:
Fecha y hora actual
Server:
Indica el tipo de S.O que corre en el servidor (Vease /.0x07)
Content-Length:
al destinatario que hubiera enviado la peticion
Campo que indica el tamaño del cuerpo del documento o, en decimal , enviado
ContenrtType:
Tipo de contenido y codificacion del archivo al que realizamos la petición
Expires:
Muestra la fecha en la que va caducar la cache de nuestra petición.
Set-Cookie:
aparece su ID. Su fecha de expiración, sobre que directorio actua y el domio desde donde se ha
obtenido.
Es la coockie que nos envia la pagina a la que hemos realizado la petición, en ella
/.0x02 Metodos HTTP
Acabamos de llegar a la parte que hay que leer con máxima atención si queremos seguir el tutorial
de aquí adelante sin perdernos (sin olvidarnos del snifeo de cabeceras). En esta parte se
explicara los metodos HTTP más comunes y los más usados, una vez esto pasaran a ver su
aplicación en ataques y tecnicas de PenTesting.
Procedo a mostrarles una breve explicacion de cada metodo.
GET:
que realicemos la petición, además la respuesta que obtenemos del servidor (código fuente de
dicho archivo) es interpretada por nuestro navegador.
El método más usado, GET obtiene cualquier tipo de informacion identificada en el fichero al
HEAD :
headers de este mismo, gracias a esto podemos obtener datos como el tipo de web app que esta
corriendo, su versión y otra info que veremos más adelante
Junto a Options uno de los que más información útil nos da. El servidor nos devuelve los
POST :
pase de ahí en adelante es ya tarea de la aplicacion.
Ejemplo: Upload echo en php nosotros enviariamos un contenido post de este estilo:
-----------------------------19411897685978101991128598558\r\n
Content-Disposition: form-data; name="archivo";
filename="B000063COX.01._SCLZZZZZZZ_.jpg"\r\n
Content-Type: image/
\r\n
Dicho upload ha admitido la imagen jpg (este upload es vulnerable [4])
Es usado para pedir que el servidor acepte información enviada desde el cliente. Lo quejpeg\r\n
OPTIONS:
de petición y respuesta que admite el servidor, este metodo condiciona lo que vayamos a hacer si
estamos intentanto encontrar un fallo en algun servidor o en alguna web app con las tecnicas que
veremos posteriormente
Llegamos al metodo que más información nos da, options nos informa de los metodos
PUT :
y sobreescribir el codigo original.
El contrario de GET por asi decirlo, si GET lee el source del arhivo, PUT permite modificarlo
DELETE:
Su propio nombre lo dice, permite borrar el archivo que especifiquemos.
TRACE:
El metodo reflejo o espejo, hace que el servidor responda lo mismo que le mandamos.
0x02: Sniffeo y Modificación de Cabeceras
Hasta ahora hemos hablado en forma general del protocolo HTTP y de que las
negociaciones entre cliente-servidor se establecen a través de cabeceras, los HTTP Headers.
Para poder trabajar con las cabeceras necesitaremos de una serie de utilidades cuya finalidad es
la de interceptar las cabeceras que manda nuestro navegador, para permitir su análisis o su
modificación. Estas utilidades se denominan sniffers, y funcionan interceptando el tráfico que pasa
por el puerto 80 (HTTP).
Estas herramientas pueden venir en forma de Addons o Plugins para diferentes
navegadores, de entre los cuales destacan para FireFox, Tamper Data y Live HTTP Headers, o
tambien pueden ser programas independientes como el magnífico Achilles. Estas herramientas
van a ser el pilar fundamental que sostendrá el trabajo con las cabeceras http.
La mayoría de programas que cumplen con esta función, actuan de una forma similar, así
que vamos a ejemplificar cómo sniffear y modificar una cabecera utilizando Live HTTP Header
(Addon para Firefox), de todas formas les dejamremoss una serie de manuales sobre otros sniffer
[5 & 6]
Lo primero que deben de hacer es descargarse este addon desde la web oficial de Firefox
(
desde Herramientas -> Live HTTP Headers. Teniendo el addon cargado podemos dirigirnos a una
web cualquiera (
nuestro navegador a mandado. En cada cabecera enviada aparece debajo su respuesta, como
aparece en el ejemplo:
GET / HTTP/1.1
Host: Pruebas.FoS.Com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.16) Gecko/20080702
Firefox/2.0.0.16
Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
HTTP/1.x 200 OK
Server: Microsoft-IIS/5.0
Date: Sat, 06 Sep 2008 21:29:56 GMT
X-Powered-By: ASP.NET
Content-Length: 35929
Content-Type: text/html
Set-Cookie: ASPSESSIONIDSCQRSQTR=JLEIDLOBGDGLKLAMPFDCIOFL; path=/
Cache-Control: private
Esta sería la cabecera sniffeada por nuestro Addon, tanto la enviada por nosotros al servidor
realizando la petición GET como la cabecera de respuesta del servidor. Ahora bien, si lo que
deseamos es modificar dicha cabecera, tendremos que clicar en la cabecera a modificar, y tras
esto clicar sobre el botón “Repetir”. Tras esto se nos abrirá un pop-up que permitirá la edición de
la cabecera.
En este pop-up aparece la petición que en la parte superior la petición que hemos
realizado. En ese campo de texto aparecen dos opciones por defecto para editar, o seleccionar
GET o POST. Pero, como probablemente esos dos métodos no sean los que vamos a utilizar
(puesto que se suele trabajar con otros como HEAD, OPTIONS, PUT y demás), tendremos que
clicar sobre la caja de texto y borrar la petición que haya y escribir la que queramos. Al lado de la
caja que define el método de la cabecera, tenemos el host al que va a ser dirigido y debajo, los
campos a editar de la cabecera.
Una cosa muy buena que tiene Live HTTP Headers es que tiene un sistema de medición
del número de caracteres automático, lo que hace muy fácil rellenar el campo de Content-Lengt.
Tras editar nuestra cabecera (ya observareis en otros capítulos de este paper para qué vamos a
editarlas) solamente tendremos que volver a clicar en “Repetir”. Ahora cerramos el pop-up y
buscamos entre todas las cabeceras la respuesta del servidor.
Cuando tengamos demasiadas cabeceras sniffeadas en pantalla, podemos borrarlas para
que continúe sniffeando nuevas cabeceras pulsando “Limpiar”.
Existen otras formas de trabajar con las cabeceras sin tener que sniffearlas para
modificarlas, como por ejemplo aprovechar algún programa que haga negociaciones TCP, como
por ejemplo pueden ser Telnet, Putty, o los populares Netcat y CryptCat. Para mandar una
cabecera a un host remoto usando Netcat hay que seguir unos sencillos pasos.
https ://addons.mozilla.org/addon/3829 ) , tras la instalación del addon, procedemos a ejecutarlowww.google.es) y ver como aparecen una serie de cabeceras que son las que

Tags

Labels

Blog Archive

Blog Archive