La obtención de los parámetros de una query se me resisten...

Iniciado por Eleкtro, 6 Julio 2015, 12:36 PM

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

Eleкtro

Muy buenas!.

Tengo intención de desarrollar un cliente de escritorio que permitirá crear una publicación en "X" sitio web, para ello hay que rellenar un form con campos específicos, no tengo problema en averiguar cómo rellenar el form, el problema que tengo es al realizar la petición, ya que es un tema que no controlo bien, y necesito saber los parámetros de la query.

Estoy tratando de averiguarlo mediante firefox + Http fox, pero no me captura la petición o yo no consigo verla, no encuentro ninguno de los datos que he usado para rellenar el form...

¿Alguien me hecha una mano?

Preferiría que me explicasen que herramienta es conveniente utilizar para averiguar estos datos para aprender por mi cuenta, sinceramente no se lo que ocurre, con otros sitios web los cuales son mucho más complejos pude llevar a cabo esta misma tarea con dicha extensión Http Fox, pero en esta página me es imposible averiguar nada.

El form de la publicación es el siguiente, aunque hay que estar registrado (el registro es gratis)
http://freehardmusic.com/albums.html?sobi2Task=addNew

Saludos!








MinusFour

#1
Aqui va el Request que hizo mi navegador:

POST /index.php?option=com_sobi2&sobi2Task=saveSobi HTTP/1.1
Host: freehardmusic.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://freehardmusic.com/albums.html?sobi2Task=addNew
Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------86737413215581253941943518474
Content-Length: 224193

-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_entry_name"

AlbumName
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_band"

BandName
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_year"

2000
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_genre[]"

AOR
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_genre[]"

Alternative metal
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_genre[]"

Ambient black metal
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_country"

United States
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_language"

English
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_format"

MP3 96 kbit/s
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_website"

http://oficialwebsite.com
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_description"

<p>BBC POST</p>
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link1"

Dl link1
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link2"

Dl link2
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link3"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link4"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link5"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link6"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link7"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link8"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link9"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link10"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link11"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link12"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="field_link13"


-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="sobi2Img"; filename="books.gif"
Content-Type: image/gif

[Informacion de Gif aqui] (Muy largo no lo voy a poner aqui)
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="sobi2MetaKey"

metaKeywords
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="sobi2Metadesc"

MetaDesc
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="sobi2SlectedCats[]"

Rock
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="sobi2SlectedCatsID[]"

2
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="cuid"

423607aedff8f608888a6936432f8682
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="uid"

620446
-----------------------------86737413215581253941943518474
Content-Disposition: form-data; name="Itemid"

13
-----------------------------86737413215581253941943518474--


Por lo general utilizo Wireshark para sacar los paquetes. Simplemente busco el request en wireshark con el filtro http y ahi puedo acceder a toda la información del request. Por HTTPS es mas difícil, creo que si usas HTTPS para la información lo mejor sería que usaras alguna herramienta del navegador.

Venía con una cookie, pero la he borrado por motivos de seguridad.

Eleкtro

#2
Genial, muchas gracias MinusFour por tu tiempo en registrarte y demás.

Creo que solo tengo una duda más, respecto a este parámetro:
field_genre[]

¿cómo se escribiría en el string de la query?, me refiero a cómo se delimita la multiselección.








#!drvy

Citar¿cómo se escribiría en el string de la query?, me refiero a cómo se delimita la multiselección.

En el query se escribe tal cual. Luego el servidor se encarga de convertir todos los datos con el mismo nombre en un array.

Acuérdate de enviar todos los headers posibles (de los que te mostró MinusFour) sobre todo Referer, User-agent etc.. y mira a ver si hay algún campo que varia de valor cada vez que vas a subir un album (tipo un token).

La mejor manera de ver requests de una pagina es con las herramientas del propio navegador. Por ejemplo en Firefox, antes de enviar el formulario, si pulsas F12 y te vas a la pestaña Red (Network) te saldrán todos los requests que haces. Chrome tiene uno parecido pero no me acuerdo si se activaba con F12 también.


Saludos

Eleкtro

#4
Cita de: #!drvy en  6 Julio 2015, 16:51 PMEn el query se escribe tal cual. Luego el servidor se encarga de convertir todos los datos con el mismo nombre en un array.

Ah, ¿si?, vaya, que sofisticado, jaja, algo nuevo que acabo de aprender :).

Entonces, yo debo escribir también los símbolos [] para que el server lo identifique cómo un Array?, confírmame que "tal cual" realmente quiere decir tal que así:
1. ...field_genre[]=valor1&field_genre[]=valor2

O por lo contario, ¿así?:
2. ...field_genre=valor1&field_genre=valor2

Gracias









MinusFour

#6
Cita de: Eleкtro en  6 Julio 2015, 16:58 PM
Ah, ¿si?, vaya, que sofisticado, jaja, algo nuevo que acabo de aprender :).

Entonces, yo debo escribir también los símbolos [] para que el server lo identifique cómo un Array?, confírmame que "tal cual" realmente quiere decir tal que así:
1. ...field_genre[]=valor1&field_genre[]=valor2

O por lo contario, ¿así?:
2. ...field_genre=valor1&field_genre=valor2

Gracias

Realmente ninguno de los dos. O bueno, depende mucho de la libreria con la que estes trabajando. El Content-Type es multipart/form-data no application/x-www-form-urlencoded. Al final la información no acaba como un querystring, sino como te he mostrado en mi request. Lo único es que el nombre del campo si tiene que ser field_genre[].

https://en.wikipedia.org/wiki/MIME#Multipart_messages

Eleкtro

#7
Lo siento, pero, para no publicar esto en un post chorra...

WireShark va muy bien, pero, para otros propósitos cómo obtener la visualización de la imagen captcha, ¿alguien sabe que programa es este?:




EDITO:

Vaya vaya, si es una aplicación de mi querido Telerik !!

El programa se llama Fiddler, y a simple vista tiene muchas características muy buenas!

Genial, programa recomendado.

Saludos