Como ver un request HTTP?

Iniciado por Vaagish, 5 Febrero 2014, 23:32 PM

0 Miembros y 1 Visitante están viendo este tema.

Vaagish

Hola amigos,, quizas este no sea el lugar indicado,, pero ya no se como..

Alguien me puede decir como puedo armar un request? O como lo puedo ver? la idea es enviar un request a un servidor, el request tiene que enviar una imagen..

dRak0

Mira  , no te entendi muy bien , te respondo a lo que entendi. Conectate con el putty por el puerto 80 a donde queres hacer el request y listo... Supongo que sabras utilizar los comandos del protocolo http.

Vaagish

Se,, es difícil hasta de buscar..

Explico.. estoy haciendo un programa en c++ que envía requests a un servidor,, luego tengo un PHP que lee esas request y devuelve determinados valores, o realiza determinadas tareas dependiendo del request,, una de las request tiene que ser enviar desde el programa c++ una imagen al servidor.. entonces se me ocurrió simular que mi programa c++ esta enviado un formulario con la susodicha imagen,, luego en mi PHP la guardo con $_FILES.. etc etc..

No se manejar putty, pero si me decís que puedo "sniffar" el request (formulario) que sube la foto, yo seria muy feliz!

Saludos!!

#!drvy

Para chrome no he mirado pero seguro que alguno debe existir. Para firefox esta el HTTP Live Headers que es de los mas sencillos y potentes que hay. Simplemente lo pones a capturar, simulas la consulta y te da todos los request.

Solia ser famoso en aquellos dias en los que podias subir una shell cambiando la extension a .jpg y repitiendo la consulta cambiando devuelta a .php xD

Saludos

Vaagish

CitarSolia ser famoso en aquellos dias en los que podias subir una shell cambiando la extension a .jpg y repitiendo la consulta cambiando devuelta a .php xD

Hu.. no llegue a esa época con la programación web jeje con estas soluciones y otras que me dieron en el subforo de C++ creo que lo puedo resolver..

Muchas gracias!!!

Saludos!!

Vaagish

Buenas,, aca estoy de vuelta molestando.. use el HTTP Live Headers al final,, y me dio como resultado esto al subir una imagen al servidor desde un formulario:

Citarhttp://localhost/Proyectos/Uploads/uploader.php

POST /Proyectos/Uploads/uploader.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ar,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost/Proyectos/Uploads/
Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------225471198928204
Content-Length: 3222
-----------------------------225471198928204
Content-Disposition: form-data; name="uploadedfile"; filename="auto.jpg"
Content-Type: image/jpeg

ÿØÿà
HTTP/1.1 200 OK
Date: Thu, 06 Feb 2014 20:22:03 GMT
Server: Apache/2.2.4 (Win32) PHP/5.2.2
X-Powered-By: PHP/5.2.2
Content-Length: 40
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
----------------------------------------------------------

Por ahi, en una parte aparece esto: ÿØÿà
Bueno,, llegue a la deducción que eso es mi archivo,, mejor dicho, el inicio de mi archivo jpg (no se ve mas del contenido binario porque al parecer el HTTP Live Headers trunca la cadena cuando encuentra caracteres raros).
Ahora,, cual seria la request que tengo que armar yo??

Todo esto quizás?:
CitarPOST /Proyectos/Uploads/uploader.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ar,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost/Proyectos/Uploads/
Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------225471198928204
Content-Length: 3222
-----------------------------225471198928204
Content-Disposition: form-data; name="uploadedfile"; filename="auto.jpg"
Content-Type: image/jpeg

ÿØÿà

Saludos!! Y gracias!

x64core

@Vaagish lo que estas buscando es un sniffer, en google pone HTTP sniffer, de preferencia que use un modulo de kernel
para interceptar los datos.

Vaagish

Citar@Vaagish lo que estas buscando es un sniffer, en google pone HTTP sniffer, de preferencia que use un modulo de kernel
para interceptar los datos.

jejeje sii,, ya busque hace rato.. termine optando por el de EffeTech,, que parece completo,, el asunto es que no muestra información para localhost! y ademas no vi que mostrara las request's literales,, muestra partes, desarmadas.. yo necesito la request literal! un '\r\n' hace la diferencia entre funcionar o no funcionar!

Ya estoy cerca de hacerlo funcionar.. pero no estoy seguro de cuales son request del navegador y cuales del servidor..  :rolleyes:

Saludos!

dRak0

#8
Cita de: Vaagish en  6 Febrero 2014, 21:36 PM
Buenas,, aca estoy de vuelta molestando.. use el HTTP Live Headers al final,, y me dio como resultado esto al subir una imagen al servidor desde un formulario:

Por ahi, en una parte aparece esto: ÿØÿà
Bueno,, llegue a la deducción que eso es mi archivo,, mejor dicho, el inicio de mi archivo jpg (no se ve mas del contenido binario porque al parecer el HTTP Live Headers trunca la cadena cuando encuentra caracteres raros).
Ahora,, cual seria la request que tengo que armar yo??

Todo esto quizás?:
Saludos!! Y gracias!


Supongo que tendrias q cambiar el Content-Length a la cantidad de tu jpg. Y pasar el jpg tuyo en vez de otro.

Podrias examinar si el server tiene habilitado el comando PUT , si lo tiene puedes subir exes , etc...(Muy raro que lo tenga habilitado)

Vaagish

Sigo sin poder resolver esto.. esta es la cadena que le envio al servidor:

Código (cpp) [Seleccionar]
char A[64] = "POST /Proyectos/Uploads/uploader.php HTTP/1.1\nhost: localhost\r\n";
char B[27] = "Content-type: image/jpeg\r\n";
char C[23] = "Content-Length: 3024\r\n";
char D[3] = "\r\n";


Ya que eso es C++ y estamos en Desarollo web, me explico.. Esas cadenas las uno formando un string largoo con esa información.. el asunto es que no funciona.. según tengo entendido seria así:

CitarHTTP/1.1 200 OK\r\n
Content-Type: image/gif\r\n
Content-Length: [length in bytes of the image]\r\n
\r\n
[binary data of your image]

Pero no funciona.. algún sniffer master que pueda dar una mano?? jeje

Saludos!