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.