Autor
|
Tema: Descomprimiendo gzip en C++ (Leído 2,613 veces)
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Ey heavy weys, resulta que me ha venido un problemilla en el sniffer llamado "Accept-Encoding" y bueno hay 2 maneras descomprimir la cadena que nos dan, o algo que haré más adelante que será eliminarla de la respuesta del servidor una vez hecho el MITM, pero ahora quiero probar una cosa y necesito descomprimir la peticion. Os paso un login en una web una vez ya pasado a cadena: POST /user/login HTTP/1.1 Host: pag.com Connection: keep-alive Content-Length: 56 Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0 .8 Origin: http://pag.com User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36 Content-Type: application/x-www-form-urlencoded Referer: http://pag.com/user/login Accept-Encoding: gzip, deflate Accept-Language: es-ES,es;q=0.8 Cookie: a_c=yes; qaapo=a957d5ce95865c588f8388194b38653bd148935f%7E1; show_popi=b f9d8e780daa75b620bfc484a5740acf03b595b0%7E1; __insp_wid=422975268; __insp_nv=tru e;
▄öÑU┼V♫ n n ¶ dh♀\÷np↑ï├' E `!¡@ Ç♠oÁ¼→ o^↨ La ultima linea muestra las variables del login (usuario y contraseña), comprimidas en gzip, he visto que se puede descomprimir archivos en gzip, pero la idea es descomprimir directamente la cadena para obtener otra cadena, con zlib, ¿se podrá hacer? Saludos.
|
|
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Seguro gzip es Open Source: http://www.gzip.org/ y es extremandamente facil de usar. Igual si es una respuesta no es mejor modificar la solicitud y eliminar el campo de codificacion para que a la respuesta no venga comprimida.
|
|
|
En línea
|
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
No entiendo, pero yo lo que quiero no es descomprimir archivos gzip, sino coger la cadena y obtener la cadena descomprimida, pues la mayoría de las funciones de estas bibliotecas trabajan sobre archivos. De todas formas no se será buena idea, hacer que el programa descomprima una cosa distinta en función de lo que me devuelva el server, hay varios accept encoding como se puede observar aqui: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlY visto que no puedo hacer frente a uno de ellos, creo que lo mejor será modificar la respuesta del servidor y pedirle al cliente los datos sin coding, lo que hará que los envie en texto plano y los pueda capturar. Pero aún así sigo intrigado en intentar descomprimir esa cadena en gzip. Los links de la página que pasastes que llevan a el código están rotos. Saludos Edito: http://windrealm.org/tutorials/decompress-gzip-stream.phphttps://panthema.net/2007/0328-ZLibString.htmlhttp://www.codeproject.com/Articles/3202/CGZip-a-C-wrapper-for-gzip-methodsCreo que añadiendo la librería zlib puedo solucionar el problema, aunque no quería llegar a este punto. Visto el ultimo link, veo que hay que escribir los datos en gzip en un archivo y luego abrirlo para descomprimirlo Vale he estado mirando con más detalle el primer link y creo que eso puede funcionar. Necesitare zlib y zconf. Saludos.
|
|
« Última modificación: 15 Julio 2015, 01:47 am por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
No entiendo, pero yo lo que quiero no es descomprimir archivos gzip, sino coger la cadena y obtener la cadena descomprimida, pues la mayoría de las funciones de estas bibliotecas trabajan sobre archivos. De todas formas no se será buena idea, hacer que el programa descomprima una cosa distinta en función de lo que me devuelva el server, hay varios accept encoding como se puede observar aqui: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlPor eso tenes que validar bien el campo, simplemente verificar por que sea gzip o el tipo de compresion. Y visto que no puedo hacer frente a uno de ellos, creo que lo mejor será modificar la respuesta del servidor y pedirle al cliente los datos sin coding, lo que hará que los envie en texto plano y los pueda capturar. Pero aún así sigo intrigado en intentar descomprimir esa cadena en gzip. Los links de la página que pasastes que llevan a el código están rotos. Saludos Edito: https://panthema.net/2007/0328-ZLibString.htmlhttp://www.codeproject.com/Articles/3202/CGZip-a-C-wrapper-for-gzip-methodsCreo que añadiendo la librería zlib puedo solucionar el problema, aunque no quería llegar a este punto. Visto el ultimo link, veo que hay que escribir los datos en gzip en un archivo y luego abrirlo para descomprimirlo Saludos. Innecesario, simplemente lo tengas en memoria y lo pasas el puntero al buffer, esa libreria contiene varias interfaces para pasar archivos, punteros a memoria, etc. ¿Por cierto cual es el dump del cuerpo de la solicitud? Me refiero a los 56 bytes.
|
|
|
En línea
|
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
La verdad que cansa, paso de instalar una librería en el proyecto por cada ** de encoding que me pongan en la respuesta de los server definitivamente, la única que voy a aceptar es la de text plain. Para inflate/deflate necesito zlib, para gzip necesito gzip, para sdch no se cual, y así hasta el infinito Por cierto no recuerdo el body, pero era el típico de un post user y pass. Saludos.
|
|
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Comprimir texto?....gzip o algo asi...
Programación Visual Basic
|
SERBice
|
2
|
2,631
|
13 Julio 2005, 07:40 am
por SERBice
|
|
|
Deflate datos header gzip
Nivel Web
|
atiko
|
4
|
5,375
|
24 Abril 2010, 22:23 pm
por WHK
|
|
|
decomprimir/decodificar cadenas con gzip?
Seguridad
|
Firos
|
0
|
3,655
|
21 Mayo 2011, 20:14 pm
por Firos
|
|
|
Http gzip encoding
Programación C/C++
|
soyloqbuskas
|
0
|
1,577
|
19 Septiembre 2013, 17:34 pm
por soyloqbuskas
|
|
|
Ayuda descomprimiendo un fichero importante
GNU/Linux
|
toltitikno
|
1
|
2,074
|
12 Marzo 2022, 14:03 pm
por Danielㅤ
|
|