Título: Como ver un request HTTP? Publicado por: Vaagish en 5 Febrero 2014, 23:32 pm 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.. Título: Re: Como ver un request HTTP? Publicado por: dRak0 en 5 Febrero 2014, 23:45 pm 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.
Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 6 Febrero 2014, 00:08 am Se,, es difcil hasta de buscar..
Explico.. estoy haciendo un programa en c++ que enva 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 decs que puedo "sniffar" el request (formulario) que sube la foto, yo seria muy feliz! Saludos!! Título: Re: Como ver un request HTTP? Publicado por: #!drvy en 6 Febrero 2014, 04:58 am Para chrome no he mirado pero seguro que alguno debe existir. Para firefox esta el HTTP Live Headers (https://addons.mozilla.org/es/firefox/addon/live-http-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 Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 6 Febrero 2014, 05:46 am Citar 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 Hu.. no llegue a esa poca con la programacin web jeje con estas soluciones y otras que me dieron en el subforo de C++ creo que lo puedo resolver.. Muchas gracias!!! Saludos!! Título: Re: Como ver un request HTTP? Publicado por: 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:
Citar http://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 deduccin 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 quizs?: Citar 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 Saludos!! Y gracias! Título: Re: Como ver un request HTTP? Publicado por: x64core en 6 Febrero 2014, 22:17 pm @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. Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 6 Febrero 2014, 22:27 pm 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 informacin 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! Título: Re: Como ver un request HTTP? Publicado por: dRak0 en 6 Febrero 2014, 23:03 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 deduccin 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 quizs?: 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) Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 8 Febrero 2014, 22:21 pm Sigo sin poder resolver esto.. esta es la cadena que le envio al servidor:
Código
Ya que eso es C++ y estamos en Desarollo web, me explico.. Esas cadenas las uno formando un string largoo con esa informacin.. el asunto es que no funciona.. segn tengo entendido seria as: Citar HTTP/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.. algn sniffer master que pueda dar una mano?? jeje Saludos! Título: Re: Como ver un request HTTP? Publicado por: ivancea96 en 9 Febrero 2014, 00:17 am Citar "Content-Length: 3024\r\n" Despus de el ltimo \r\n, envia los 3024 bytes, y listo. Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 9 Febrero 2014, 00:34 am Ojala!! Ya lo intente todo! todooo!! Vos crees que el header este bien? El tamao del archivo esta correcto,, lo nico que dudo es si solo se enva el tamao del archivo en Content-Length, o el tamao del archivo mas el tamao del request.. no se si me explico.. (Igual ya lo intente de las dos formas..)
Saludos! Título: Re: Como ver un request HTTP? Publicado por: ivancea96 en 9 Febrero 2014, 01:33 am Citar POST /Proyectos/Uploads/uploader.php HTTP/1.1\nhost: localhost Tengo entendido que no importa en algunos servidores enviarles \n sin el \r, pero podras probar: Citar POST /Proyectos/Uploads/uploader.php HTTP/1.1\r\nHost: localhost EDITO: Si no te va, prueba acambiar localhost por tu IP local. Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 9 Febrero 2014, 05:13 am Citar POST /Proyectos/Uploads/uploader.php HTTP/1.1\r\nHost: localhost No me habia percatado de ese \r,, pero igual no funciona.. Esto es lo que le envio literalmente al servidor: Citar POST /Proyectos/Uploads/uploader.php HTTP/1.1 host: localhost Content-type: image/jpeg Content-Length: 3024 JFIF "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777 \ {" B !1A"Qa2qB#3brRT$5Cs A ? :M\{P+}B.@߭suYu(e\ɿޣ?cUm]1U+s }(OE+ K9R~ ng|֬2~o;V k#w OLf$cv{]EvZEϿN .y\Ffmie *:YS zLv5]?m+w% +8I? Qqj|#Re'|m"Tؓ?U &5_ ;jP0.ǦBϣ~SNDʿII_U?BS _]IܟL4iJmKL<^P>fypw`*jFnYIZN6Qq@G _NycveZ84e>!^g nU GO~q4Ό '$k]A ~f<) Itq8 vȎ93ʗZŦsI:0aJ[tŭ!yE8]|+..e'ßÏpb'5<Ghj8nEH `{}>A8[}^$ W8r#*)!zsT3@A>mnf4)aqU/*_K9h8jǃģcʿ3L4Sl0H.B_2:+>Iou6!c7]\kZ+u;?/;|Y;dM"۾1noք(n(IN uߪoˆRDW}*bS ciݼn2X8ʐs~wq$c?NKh݆9Am\JbkH OlYbIr[$ʹvib];YQ)[vd # ;U kךrmf!m0>F;U@@$T:c>xbq"9] c֫Supऱ l `i"y]dwV N<wؚ oDVŭ-r]8 )?hKwA,jWf,3cOzM .[H 1فI_c$52:+{Z[Zl$c I}|;a5{+2rp߀ڛӭ3I! 2ǐtfc{gr 5), -m %`9N¤tkK); <X$yzSޝZKӑ$1;oT CҮшHZH$Dp6#88Zۋշ<$q(b<kYgp~3Er(Qש2p75.$ִ PN|oԝڃ;if{EvPŎ2=>vkx)FB}Y.tđycϡTQ6yז4ۺwqMլZ˩i|@,ls@Mݣ/^lo[ˈPFb2m(:7{cȧk[W <O*($)99l6Gg4Y^`JWd+g Jٷ.llJ>;[Y+DVHA #rq"hYiܐs}=R{++KH7SyݾR#nTlN 0K}m`<S qiZkki ,6YlsqǾM#PyG_R|pMToaDFeh̖.H|SYKg 8:m9RQENՔwJ'EbQWGoǍŁTȧ R>8'"넮p[,Y&61bT("1ۛV29i d8q^#NlyIC Tm5(]YxugKlylbRKU)'|Y\d/Gj Y,^3Γ\m|n pP'{FӉ9 0[nQG~a7zsI<1:?&zs"OrMp%Xk f_rLlxۉuHpR';~ f-"rjNqMԚH%2N䞴lpm QzVD<!Ԁl-CE ڢS#Q@@>GlQ@ N3%cҤTr+z hialʑQ|ImwP? `;@7[Elb(lj,o|,E[ ' ґ L v cwǜmzVQk?AoMmuLf繕?}2* P p|BDoW-$@4G1p)ZT2Bd,u+u/IF;3CNW.k=7)d^] UtP?4oo Esta clarisimo cual es la imagen,, no intenten copiar y pegar a ver si esta bien el binario, porque les va a dar error,, pero si lo hago yo,, con mi archivo funciona bien.. Título: Re: Como ver un request HTTP? Publicado por: ivancea96 en 9 Febrero 2014, 14:22 pm Mira que cabecera enva el navegador al enviar una imgen, por ejemplo.
PD: Una imagen, se le enva con una varible en el method POST: Código: \r\n\r\n Título: Re: Como ver un request HTTP? Publicado por: dRak0 en 9 Febrero 2014, 15:08 pm Proba abriendo con fopen la imagen , abrila con 'rb' , leela toda y guardala . Manda la informacion desde esa variable.
Título: Re: Como ver un request HTTP? Publicado por: ivancea96 en 9 Febrero 2014, 16:36 pm Perdon por lo que dije de la variable, me confund :3
Cog con WPE los paquetes del envo de una imagen, y esta fue la cabecera,si te sirve: Código: POST /XXX.php HTTP/1.1 Muchos campos de la cabecera son innecesarios, pero bueno, te la pongo entera. Y bueno, como dijo jednak, la imgen abrela desde el programa, y ve enviando su contenido, no la abras como txt y la copies ni nada as jaja PD: Si la abres, abrela como BINARIO. Título: Re: Como ver un request HTTP? Publicado por: #!drvy en 9 Febrero 2014, 20:08 pm @Ivancea, hasta ah el haba llegado e.e
Vaagish, tienes que enviar mucho mas no solo eso. Tienes que enviar connection, content-length, content-type (2 veces), boundary, content-disposition, accept... y recuerda que despus de content-type van 2 \r\n y al final tambin de todo tambin. Ademas te vendra bien imprimir los headers y el contenido que te devuelve.. Saludos Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 10 Febrero 2014, 00:34 am Citar Cog con WPE los paquetes del envo de una imagen, y esta fue la cabecera,si te sirve: Gracias,, yo haba echo algo parecido y obtenido una cabecera parecida.. Citar Vaagish, tienes que enviar mucho mas no solo eso. Tienes que enviar connection, content-length, content-type (2 veces), boundary, content-disposition, accept... y recuerda que despus de content-type van 2 \r\n y al final tambin de todo tambin. Ademas te vendra bien imprimir los headers y el contenido que te devuelve.. El boundary ese me esta volviendo loco! --> http://stackoverflow.com/questions/4656287/what-rules-apply-to-mime-boundary Estuve probando con todos esas cabeceras y tampoco... He llegado a una conclusin: No es para nada aconsejable (sin estar completamente seguro) hacer esto como lo estoy haciendo yo,, por lo que veo, un servidor puede requerir ciertas cabeceras obligatorias, y a lo mejor otro servidor, otras.. yo aunque copie todas esas cabeceras, es probable que me falte un \r o un \n.. y solo por eso,, o por un espacio,, o por el mas mnimo detalle,, no funciona.. no me parece para nada practico,, vaya a saber uno como se la ingenia el navegador,, pero le sale bien su trabajo jejeje Al final voy a enviar el archivo como una secuencia de datos binarios,, y despus lo voy a unir con PHP y escribir el archivo en disco. Lo nico que me preocupa es que el mtodo POST acepte caracteres raros.. Asi me evito todas esas cabeceras complicadas.. Saludos!! Gracias por su tiempo! ;D EDITO: No es posible hacer lo que queria,, tenia la ilusion de poder hacer algo asi: POST /Proyectos/Uploads2/uploader.php?PARTE1=[DATOS BINARIOS] HTTP/1.1\r\nHOST: localhost\r\n\r\n POST /Proyectos/Uploads2/uploader.php?PARTE2=[DATOS BINARIOS] HTTP/1.1\r\nHOST: localhost\r\n\r\n ... O sea, enviar el archivo por partes, pero [DATOS BINARIOS] NO es una opcion dentro de una variable... Título: Re: Como ver un request HTTP? Publicado por: #!drvy en 10 Febrero 2014, 03:35 am No tienes alguna libreria que lo haga por ti ? Por ejemplo curl es bastante famosa y esta en varios lenguajes.. con un par de lineas subes archivos o parseas paginas _
Saludos Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 10 Febrero 2014, 04:03 am Citar No tienes alguna libreria que lo haga por ti ? Por ejemplo curl es bastante famosa y esta en varios lenguajes.. con un par de lineas subes archivos o parseas paginas _ Y.. si,, voy a tener que usar algo de eso.. es que queria algo "unico" para saltar las firmas,, pero bue.. es lo que hay! >:( Saludos!! ;D Título: Re: Publicado por: ivancea96 en 10 Febrero 2014, 08:17 am Todo es probar. Mirar hoy cuando pueda que cabeceras son imprescindibles :p
Enviado desde mi ST21i mediante Tapatalk Título: Re: Como ver un request HTTP? Publicado por: Vaagish en 12 Febrero 2014, 00:44 am Bueno gente,, no quera dejar el asunto as colgado, les voy a contar lo que pasa..
No encontraba forma de enviar esas ***** cabeceras,, entonces termine copiando literalmente el contenido de una cabecera bien echa,, y al enviarla con mi programa, cha channnn!! No funciona,, as que es probable que las cabeceras estuvieran bien desde un principio,, (hace 2 semanas que estoy con esto,, 8hs al da) con lo cual, mi estado anmico acaba de derrumbarse,, (naa,, na pa tanto) Bueno,, en fin,, segun HTTP Live Headers esto es una cabecera correcta: Citar http://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/index.html Connection: keep-alive Content-Type: multipart/form-data; boundary=---------------------------3093158725401 Content-Length: 3218 -----------------------------3093158725401 Content-Disposition: form-data; name="uploadedfile"; filename="auto.jpg" Content-Type: image/jpeg JFIF "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777 \ {" B !1A"Qa2qB#3brRT$5Cs A ? :M\{P+}B.@߭suYu(e\ɿޣ?cUm]1U+s }(OE+ K9R~ ng|֬2~o;V k#w OLf$cv{]EvZEϿN .y\Ffmie *:YS zLv5]?m+w% +8I? Qqj|#Re'|m"Tؓ?U &5_ ;jP0.ǦBϣ~SNDʿII_U?BS _]IܟL4iJmKL<^P>fypw`*jFnYIZN6Qq@G _NycveZ84e>!^g nU GO~q4Ό '$k]A ~f<) Itq8 vȎ93ʗZŦsI:0aJ[tŭ!yE8]|+..e'ßÏpb'5<Ghj8nEH `{}>A8[}^$ W8r#*)!zsT3@A>mnf4)aqU/*_K9h8jǃģcʿ3L4Sl0H.B_2:+>Iou6!c7]\kZ+u;?/;|Y;dM"۾1noք(n(IN uߪoˆRDW}*bS ciݼn2X8ʐs~wq$c?NKh݆9Am\JbkH OlYbIr[$ʹvib];YQ)[vd # ;U kךrmf!m0>F;U@@$T:c>xbq"9] c֫Supऱ l `i"y]dwV N<wؚ oDVŭ-r]8 )?hKwA,jWf,3cOzM .[H 1فI_c$52:+{Z[Zl$c I}|;a5{+2rp߀ڛӭ3I! 2ǐtfc{gr 5), -m %`9N¤tkK); <X$yzSޝZKӑ$1;oT CҮшHZH$Dp6#88Zۋշ<$q(b<kYgp~3Er(Qש2p75.$ִ PN|oԝڃ;if{EvPŎ2=>vkx)FB}Y.tđycϡTQ6yז4ۺwqMլZ˩i|@,ls@Mݣ/^lo[ˈPFb2m(:7{cȧk[W <O*($)99l6Gg4Y^`JWd+g Jٷ.llJ>;[Y+DVHA #rq"hYiܐs}=R{++KH7SyݾR#nTlN 0K}m`<S qiZkki ,6YlsqǾM#PyG_R|pMToaDFeh̖.H|SYKg 8:m9RQENՔwJ'EbQWGoǍŁTȧ R>8'"넮p[,Y&61bT("1ۛV29i d8q^#NlyIC Tm5(]YxugKlylbRKU)'|Y\d/Gj Y,^3Γ\m|n pP'{FӉ9 0[nQG~a7zsI<1:?&zs"OrMp%Xk f_rLlxۉuHpR';~ f-"rjNqMԚH%2N䞴lpm QzVD<!Ԁl-CE ڢS#Q@@>GlQ@ N3%cҤTr+z hialʑQ|ImwP? `;@7[Elb(lj,o|,E[ ' ґ L v cwǜmzVQk?AoMmuLf繕?}2* P p|BDoW-$@4G1p)ZT2Bd,u+u/IF;3CNW.k=7)d^] UtP?4oo -----------------------------3093158725401-- Lo unico que me genera una duda es que al enviar dos (o mas) veces el formulario, (la imagen en si) siempre cambia el Content-Length.. cosa curiosa, porque la imagen siempre es la misma.. En fin.. voy a arreglar primero el programa para despues poder hacerme el canchero y enviar el request... Saludos! |