¿Cómo puedo determinar qué codificación se está utilizando? [duplicar]

1

Estoy probando una aplicación web como parte de un programa de recompensas por errores en el que se codifica el valor de un ticket de producto otorgado a los clientes.

Para su información, el número de boleto se le da a un usuario para un producto adquirido. La aplicación web tiene un campo de entrada donde se puede ingresar el número de boleto para obtener información sobre el estado del producto. El número del ticket ingresado se envía al servidor y se encripta, la página se recarga mientras se vacía dicho campo de entrada, el número del ticket se solicita al servidor, se descodifica y se vuelve a colocar en el campo de entrada para la página de resultados.

Para un número de boleto arbitrario: 1111111111111, la cadena encriptada se ve así:

  

2c9VP8uK6VUJlJR4Lmonwk3wy1UGEBgO4VqUYjUqar6kU% 3DvK1% 2BrOrlrThJWBCPGY5f2vzfJOFMCGd% 2FS5% 2BaM% 2FaM% 2FaM% 2FaM% 2FaM% 2FaM% 2FaM% 2FaM% 2FmaM

O esto (al decodificar los caracteres de la URL):

  

2c9VP8uK6VUJlJR4Lmonwk3wy1UGEBgO4VqUYjUqar6kU = vK1 + rOrlrThJWBCPGY5f2vzfJOFMCGd / S5 + aM / X / 6No =

He diseccionado esta cadena codificada de la siguiente manera:

1.

  

2c9VP8uK6VUJlJR4Lmonwk3wy1UGEBgO4VqUYjUqar6kU% 3D                        O     2c9VP8uK6VUJlJR4Lmonwk3wy1UGEBgO4VqUYjUqar6kU =

Esto parece ser algo de sal o algo así, ya que aparecerá prefijado en otros valores codificados como el número de cliente.

2.

  

vK1% 2BrOrlrThJWBCPGY5f2vzfJOFMCGd% 2FS5% 2BaM% 2FX% 2F6No% 3D O     vK1 + rOrlrThJWBCPGY5f2vzfJOFMCGd / S5 + aM / X / 6No =

Esto es lo que yo llamaría la parte "dinámica" de la codificación, ya que varía con el número de boleto.

Al realizar la prueba, he venido a observar lo siguiente:

  • No importa si '% 2f' o '% 3D' se escriben como '/' y '=' respectivamente, ya que el servidor decodificará la cadena y devolverá el número de boleto dado en ambos casos. En la contraparte sí importa si '% 2B' se pasa como '+', ya que el servidor devolverá el campo de entrada del número de boleto vacío.

  • El final '% 3D' es necesario para decodificar, al separar la cadena del final, el carácter% 3D generará un campo de entrada vacío.

He probado con decodificadores en línea sin suerte.

Lo siento si me extendí demasiado, pero quería darte la mayor cantidad de información posible, ya que no estoy familiarizado con los métodos de codificación. Espero que alguien pueda echar una mano con esto. Gracias de antemano.

    
pregunta sonny 02.02.2017 - 23:59
fuente

2 respuestas

2

Es un par de cadenas Base64 con un prefijo de dos caracteres:

  

2c9VP8uK6VUJlJR4Lmonwk3wy1UGEBgO4VqUYjUqar6kU = vK1 + rOrlrThJWBCPGY5f2vzfJOFMCGd / S5 + aM / X / 6No =

es igual a:

2c
9VP8uK6VUJlJR4Lmonwk3wy1UGEBgO4VqUYjUqar6kU=
vK1+rOrlrThJWBCPGY5f2vzfJOFMCGd/S5+aM/X/6No=

Estas cadenas codificadas se expanden a los siguientes datos:

f5 53 fc b8 ae 95 50 99 49 47 82 e6 a2 7c 24 df
0c b5 50 61 01 80 ee 15 a9 46 23 52 a6 ab ea 45 

bc ad 7e ac ea e5 ad 38 49 58 10 8f 19 8e 5f da
fc df 24 e1 4c 08 67 7f 4b 9f 9a 33 f5 ff e8 da 

Ambos son de 32 bytes, lo que podría indicar datos encriptados, pero son claramente datos con algún patrón, por lo que sospecho que no es un cifrado de bloque.

Mi primer comentario es que el prefijo "2c" podría ser 0x2c para algún tipo de xor crypto, pero no obtuve ningún resultado de eso. También probé la suma y resta de módulos, y haciendo lo mismo entre los dos pares de cadenas, de nuevo sin resultado.

Lamentablemente, no hay una forma obvia de romper esto sin un número significativo de pares de texto cifrado de texto simple para darnos más información.

    
respondido por el Polynomial 03.02.2017 - 00:36
fuente
-1

¿Quizás el número del boleto ahora se transforma en un número de hash? Al igual que en, ahora es un punto en un espacio numérico aleatorio. La cadena codificada de la URL debe respetarse, ya que no es seguro que los navegadores web o las aplicaciones del lado del servidor puedan analizar la cadena correctamente.

    
respondido por el munchkin 03.02.2017 - 00:11
fuente

Lea otras preguntas en las etiquetas