Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Vaagish

#541
Desarrollo Web / Re: Como ver un request HTTP?
10 Febrero 2014, 04:03 AM
CitarNo 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
#542
Desarrollo Web / Re: Como ver un request HTTP?
10 Febrero 2014, 00:34 AM
CitarCogí con WPE los paquetes del envío de una imagen, y esta fue la cabecera,si te sirve:

Gracias,, yo había echo algo parecido y obtenido una cabecera parecida..

CitarVaagish, 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 después de content-type van 2 \r\n y al final también de todo también.

Ademas te vendría 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 conclusión: 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 mínimo 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 después lo voy a unir con PHP y escribir el archivo en disco. Lo único que me preocupa es que el método 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...
#543
CitarLa funcion strcat trabaja con cadenas, eso significa que al encontrar un valor nulo 0, esta dejara de copiar, y a ser un valor binario segurisimo que hay un 0.

Sip,, ya lo había arreglado..

Citarlos punteros se podrian arreglar y todas esas funciones tambien.

Jajaja yo sabia que no escapaba del ojo meticuloso.. es una basura el código,, pero deberia funcionar,, entonces lo arreglo  :P voy a poner una actualización del code:

Código (cpp) [Seleccionar]
#include "main.h"
#include "conexion.h"

#include <iostream>
using namespace std;

char A[65] = "POST /Proyectos/Uploads/uploader.php HTTP/1.1\r\nhost: 127.0.0.1\r\n";
char B[27] = "Content-type: image/jpeg\r\n";
char C[23] = "Content-Length: 3024\r\n";
char D[3] = "\r\n";

char ConnString[3141] = "";


int main()
{

SOCKET Sock = Conectar();
HANDLE Rec_Handle = CreateThread(NULL, 0, Recibir, NULL, NORMAL_PRIORITY_CLASS, NULL);

// ARCHIVO
FILE *Archivo;
char Buff[3024];
Archivo = fopen("auto.jpg", "rb");
int Tamano = fread(Buff, 1, 3024, Archivo);
fclose(Archivo);
// ******************************************

strcat(ConnString, A);
strcat(ConnString, B);
strcat(ConnString, C);
strcat(ConnString, D);

memcpy(ConnString + strlen(ConnString), Buff, Tamano);

send(Sock, ConnString, 3138, 0);

// closesocket(Sock);

cin.get();
return 0;
}


Bueno,, en fin.. ya estoy a un pelo de hacer mis propias funciones en PHP y C++ para subir archivos,, (capaz que me queda hasta mejor).. abro el archivo como binario,, lo divido en partes,, le mando al server la cantidad de partes y el nombre,, y después lo uno y lo escribo con PHP y listo,,, me parece que va a ser mas fácil y multi proposito!

Saludos!!
#544
Desarrollo Web / Re: Como ver un request HTTP?
9 Febrero 2014, 05:13 AM
CitarPOST /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:

CitarPOST /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'¡±#3brÁÑáRT,²$5Csƒ"ÂÒÓÿÄ             ÿÄ             AÿÚ   ? :M­ä\ç™{Pñ'¸+¶Õ}ÆàžÀB.á@ß­suYu(e\äœÕÉ¿ÏÞ£?cUÆþm±šÆäƒ]Ï1û‡ÛU+÷ö©s }(ˆOº™ùE+ 'K§9R~ª ãng|Ö¬"õ2~é¡ão;ŠºVý Ÿº
 k#Ëw   ôOáLf"$c°¥v{]EûŸÂ"vÍZãEò¿Ï¿ÕNâ °.Øy³Œ\ÖFfðÛmù½iõ«âeÊó Ã*:'YS¶ÿ zLß»vÇð5Î]?üm÷ýùè±+ŸÕéÇüîðÍwžóü%¸ÿ «ý+£›8IðäÉ?    Qðqêj×|†Û#úR¶¸eÝÏ'|çm"áÛçTÆØ"?U   &«5Ä_ Ô;jP0.ǦB¸Ï£†~SÌNçµDÊ¿I±I_U?BÞSûÄ
¬_]IðÁüÜŸåL4êi"±÷¥óJ»äméKåšðåLˆ¹þâ<Ô^ÃP'>fypw`™ü*âjFnYIÇZ"N6QÝq@G _ÜNycve,,Á¿Z8ø4 eê>!^g änU GO~µq4¢ØòÎŒÛ ¸'­$'¶œÕâÂÎÛk]A«ø¿ú
óò~fÀú<')ÿ I«,,¢t,qÌ8ö§   v±Èާ9Î3¿Ê—ZŦþsI:0aõJ«Š§[ÐätòÅ­Ç!åyŸÃE8ê]|µŸ+鳿Ù..õe,'ßÏñßï¥í¯pØb‰'Úøãî5ã<G¡Þhš»Ùj8–nEH   `ê{,}ò>£A8ý[}•¦^ý¢$ WÄ8õÍr#¼*Ò)!zsT™ù3@éA>£mÁnf–¦4)aq...ùU‡"/*§_º"K¬9Ú€¬h8jºÍǃ§Ä£cÊ¿3L4S§—¦Õl0ÀÖóH.BÍ_Ñ2ã˜äç¦:ûÓ+>'Iou6•!cÆ7ˆã]·ÈÈôë\¸Ðôû›kˆZ+›ãu;?/ˆ;|YÎù;ýµdM"'öÛ¾1Önç÷o™ú±Ö,,Ž(nî(àIÄë²û"Nÿ üu¬ßªÖ½äoÃÖˆRÎD³‰Êà"W}*ØÄbµð­ãS¸   žcêi·­‡‡ù­Ý¼n2X8ʐsŽ£~"¼éwq$'cöŽ?...NÎÊüKhÑ݆9'óËA¯µÉm¤÷\²Jªbk‡'HÎã OlÖ ôYb×µ›»IÐør[$ˆ'ËʹܽvÅi¸bÒ];Y†çQ)á[‡vd à•#
é×;úU××ÿ škךžŸrm'ã•f!m²0>ŽF;œàU@š ®±¢@á$ñãý¦Tò¶:ž»c>¨ÖxbÅôùq"Àޤ9]—ã cÖ«¼âËÉå–SupÉऱ l'Ä Ÿ`¦¾±¾i"y]d¸wV N<»wŒÀߨš oDVþ Å­ì-ÒÞr ]‰8ïœíØ )?,µ¢âhÚK"wA£¹,jWfËÜý,3c·OzMËò .[¸Hú
é1™ÙêI«±í_c$5Ñ2 "Ê:ã®+{ÁZ‡...¦Þ[ÄZl'$c IéÇÛê¬}­¬|ñÝ;¢a"¨5°á‹{+2‰r§™Éæpžß€Ú›äÓääÓ­Í3I!
2ǐtfc¶{gr    ·Ö5‹),¥‰ •-mÁ ÄÁŸ%‰`9¿N¤tkKû†ž)ž;—
<X$ÃyzŽÛ©ŽÂSÛÞÜޝZâK™Ó'$'Œ ×1Û;oT ‡CҮшHZHð$DpÆ6#88ï½¢ZÛ‹Õ·Òå¹<à¬Í$q¢¯(b<û¸ðkYgÂpÍ~÷º£¶¡3Eárº(õQשë2p75.$ִމ¡±·€ê®á PN|äoԝºïÚƒ;ªifšê{E¼vP×ÅŽ2=>"ž¤Œž´âÖvk x§ž)ÉüÓF™ŸÞB¥¹æ}†õ‰¶Y.ïžòìÍtÄ'â¾ycÏ¡TQè6úëyÁ×–Ñ4Ûº"wqô˜÷û¨ñMÕ¬Z"Ë©iº|@,lÖs@,MÉÝ£Û/^loŒù[ˈ¯PÂ'Fb2m(Ü:7"Ñ{c°È§k¬[ëWºÿ ,,·ñéˆ<O*($ÈØéœ)99èl"óé6ÒGg4ðY^`ÎÉÈJWäd+ŒgªûÔ Jò¼Ù·‹ž˜.Èæl‡lä÷ÏJ>æê;[Y–+¸±DVHA ë#¶rq°"¾'híÔYi©Éܐ¹sê}‡¹=úž"›R{++KžHâ7S®yݾRÒ#nƒêïTløêÎN³ð"ò´ª, 0ÂK×}È¿m`±ó§<SÅ   Äqi°ÙZÏkki   ,³6YælsŸq¶Ç¾M#PyG_¶R|½Ípš›ÝMTÙÆÃoaDFeºhÌ–.ÂHúÜ|¾ÊSY¦·K®³°Àg ô8§:mõ¬9†ì´¶RQÓëþ´EâÛNè–ÚÕ"wîJœôÀ'áÍEbÓQ¿¼·WGoþÚǍ¸ŠÅƒTŸè±È§ÿ ØÚû€RÆÊþ>åçì8¡'Ñî—"ë,,®Óö¡Ü¦Š×pÇå[Ô,Y®&Éá™61žôÒ×òŽÑÜbûT€(ß—"²¼1£Û›V29Óâi   d¸8qº®û€­µ –¸^#±NlyICÿ Tm5Þ(‹]¶ˆYÝxðugîÃçKlµy¬lîb¶øäõÁéRáþ´³¶KUÕè)''Ñ|YŸ\d/ßGjú
ØY™ÞÝ,^3Î"\Ým'¸çÎ|nª   ÷pPÒ'á×½{FÓ‰˜øŠ¡9œòáŽù 0[nQ²¶ÇGÜ~aÂÖ7zê¼sÝI<1:³?&zäs"'OrM¦ßp%ãXkšÍÄ   f¡¢Ò_›ôr»€LžÄûõlçxÛ‰‹u...¸H pRÖ'ëƒñ;~ÑÀù f-"¼¿»¿r©þÇjNÐÂq'ûMÔš® Hã%¹2Näž´lpm×¾¦ ¯QŒzV±Då«<!íöÔ€lü-šàCŽ´E €Ú¢S#Q@@>ÕðèGlQ@¼
߃ó¡ŸN...³...Å3%»cÒ¤Tr+z¶
hôù­›žÖialõÊ'öQ°ê|ImúwPÓó—?‰Å ðÉÀÈþ•`;å@ÒÊ7[ÚElb°˜(lj,oÌçÔáÀÉö|"þ,Eå[
'çàÉÿ Ò'ª,   ôÍL °v cwÇœmzŒVQ±k¦?ÌAo¾Mmu¨LfÔî繕º¼Ò?}€2*ÈÀ"
±Ÿ¸P
Œp|·BDÄoWÃ-û$×@ù»4G1Èô®äã£p)¬ZT2BŽd›,¡˜uû+uÂÜ/¤I¥F׉;»3•C¸ÇN›W.îÙÕÇÕk¸óÁæÛ=7ÕÜ)þè¯d^Ñö]¡ù¿ʠÚ'ŒUtëP?ä¯ò¯4ùÜoåoê¯ÿÙ

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..
#545
Desarrollo Web / Re: Como ver un request HTTP?
9 Febrero 2014, 00:34 AM
Ojala!! Ya lo intente todo! todooo!! Vos crees que el header este bien? El tamaño del archivo esta correcto,, lo único que dudo es si solo se envía el tamaño del archivo en Content-Length, o el tamaño del archivo mas el tamaño del request.. no se si me explico.. (Igual ya lo intente de las dos formas..)

Saludos!
#546
Desarrollo Web / Re: Como ver un request HTTP?
8 Febrero 2014, 22:21 PM
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!
#547
Bueno,, después de muchas horas de lucha,, no lo he conseguido.. voy a dejar el código de la parte que tendría que hacer la magia,, pero no la hace..

Código (cpp) [Seleccionar]
#include "main.h"
#include "conexion.h"

#include <iostream>
using namespace std;

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";

char ConnString[] = "";


int main()
{

SOCKET Sock = Conectar();
HANDLE Rec_Handle = CreateThread(NULL, 0, Recibir, NULL, NORMAL_PRIORITY_CLASS, NULL);

// ARCHIVO
FILE *Archivo;
char Buff[3024];
Archivo = fopen("auto.jpg", "rb");
int Tamano = fread(Buff, 1, 3024, Archivo);
fclose(Archivo);
// ******************************************

strcat(ConnString, A);
strcat(ConnString, B);
strcat(ConnString, C);
strcat(ConnString, D);

int Total = strlen(ConnString) + Tamano;

strcat(ConnString, Buff);

send(Sock, ConnString, Total, 0);

cin.get();
return 0;
}


Asumimos que en conexion.cpp estan las funciones para conectarse (cosa que hace bien) y devuelve un SOCKET (para poder usar send luego en main.cpp), tambien esta la funcion recibir, que se inicia como un hilo, y que tambien funciona bien,, porque del servidor me llega "Ha ocurrido un error, la imagen no se subio", con las respectivas cabeceras HTTP. Bueno,, probablemente el error este en mi cabecera HTTP, que esta formada por A,B,C y D.. No puedo mas con esto jajaja

Saludos!!

EDIT: Me parece que no se debe utilizar strcat con archivo binarios... Sugerencias para unir un puntero char con datos binarios??

EDIT: Ya arregle con memcpy el item anterior..
#548
CitarInsertar Cita
Que bueno que puedas resolver con eso!!!

Por si acaso te sirve, el envío de un formulario a un servidor consiste simplemente de un mensaje HTTP de tipo GET o un POST, que en su cuerpo contiene parejas de nombre-valor. El atributo "name" de cada control del formulario seguido se su "value".

En el caso de imágenes es igual, pero el contenido del mensaje es simplemente el flujo de bits que forma la imagen. Es decir, el contenido bruto del fichero de imagen. Pero en la cabecera del mensaje debes especificar el tipo MIME del documento, que por ejemplo para una imagen GIF debe ser  "image/gif"

Gracias por tu respuesta! Estuve leyendo sobre el tema y es asi como decis.. ahora estoy tratando de esnifar los paquetes con un programa,, en cuanto consiga la cadena correcta la posteo aca!

Saludos!
#549
Desarrollo Web / Re: Como ver un request HTTP?
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 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!
#550
Desarrollo Web / Re: Como ver un request HTTP?
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:

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!