elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Descomprimiendo gzip en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Descomprimiendo gzip en C++  (Leído 2,579 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Descomprimiendo gzip en C++
« en: 15 Julio 2015, 01:05 am »

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:

Código:
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 Desconectado

Mensajes: 1.908


Ver Perfil
Re: Descomprimiendo gzip en C++
« Respuesta #1 en: 15 Julio 2015, 01:23 am »

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 Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Descomprimiendo gzip en C++
« Respuesta #2 en: 15 Julio 2015, 01:35 am »

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.html

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:

http://windrealm.org/tutorials/decompress-gzip-stream.php
https://panthema.net/2007/0328-ZLibString.html
http://www.codeproject.com/Articles/3202/CGZip-a-C-wrapper-for-gzip-methods

Creo 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 :o :o :o :o :o :o :-X :-X :-*

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 Desconectado

Mensajes: 1.908


Ver Perfil
Re: Descomprimiendo gzip en C++
« Respuesta #3 en: 15 Julio 2015, 01:47 am »

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.html
Por 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.html
http://www.codeproject.com/Articles/3202/CGZip-a-C-wrapper-for-gzip-methods

Creo 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 :o :o :o :o :o :o :-X :-X :-*

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 Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Descomprimiendo gzip en C++
« Respuesta #4 en: 15 Julio 2015, 10:45 am »

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  :-X :-X :-X

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.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comprimir texto?....gzip o algo asi...
Programación Visual Basic
SERBice 2 2,617 Último mensaje 13 Julio 2005, 07:40 am
por SERBice
Deflate datos header gzip
Nivel Web
atiko 4 5,361 Último mensaje 24 Abril 2010, 22:23 pm
por WHK
decomprimir/decodificar cadenas con gzip?
Seguridad
Firos 0 3,625 Último mensaje 21 Mayo 2011, 20:14 pm
por Firos
Http gzip encoding
Programación C/C++
soyloqbuskas 0 1,548 Último mensaje 19 Septiembre 2013, 17:34 pm
por soyloqbuskas
Ayuda descomprimiendo un fichero importante
GNU/Linux
toltitikno 1 2,036 Último mensaje 12 Marzo 2022, 14:03 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines