En este post la solución a otro de los retos de criptografía de la plataforma backdoor.
Este reto tiene el título "easy-flipp" y mi valoración sobre su dificultad es: ★★☆☆☆.
Su enunciado dice lo siguiente:
dr3dd is n00b in crypto stuff, but he tried to encrypt some data using AES-CBC mode can you change encrypted data and get his private message..!!
nc hack.bckdr.in 10006
Y como pista se da la siguiente (Hint): CBC Bit-Flipping Attack.
Solución: ya he escrito en este blog algunos post sobre el 'bit-flipping attack', por lo que resolver este reto no tiene que ser difícil y, en consecuencia, rebajo su nivel de dificultad a bajo.
Me conecto:
En el enunciado se dice que el método de cifrado utilizado es AES en modo de operación CBC, y aquí veo el mensaje de autenticación cifrado (en hexadecimal) y que el texto en claro correspondiente al mismo es "admin=0".
Pues bien, entiendo que lo único que hay que hacer es cambiar "admin=0" por "admin=1" mediante la modificación del Byte séptimo del vector de inicialización (IV) para que se produzca la modificación deseada en el Byte séptimo del primer bloque de texto plano (pase de 0 a 1).
Es decir, la modificación que tengo que realizar es la siguiente:
Por consiguiente, basta con modificar el Byte 7 del vector de inicialización (resaltado en color rojo a continuación) con el resultado de la operación XOR de ese mismo Byte con 1.
Este reto tiene el título "easy-flipp" y mi valoración sobre su dificultad es: ★★☆☆☆.
Su enunciado dice lo siguiente:
dr3dd is n00b in crypto stuff, but he tried to encrypt some data using AES-CBC mode can you change encrypted data and get his private message..!!
nc hack.bckdr.in 10006
Y como pista se da la siguiente (Hint): CBC Bit-Flipping Attack.
Solución: ya he escrito en este blog algunos post sobre el 'bit-flipping attack', por lo que resolver este reto no tiene que ser difícil y, en consecuencia, rebajo su nivel de dificultad a bajo.
Me conecto:
Pues bien, entiendo que lo único que hay que hacer es cambiar "admin=0" por "admin=1" mediante la modificación del Byte séptimo del vector de inicialización (IV) para que se produzca la modificación deseada en el Byte séptimo del primer bloque de texto plano (pase de 0 a 1).
Es decir, la modificación que tengo que realizar es la siguiente:
C'0[7] = C0[7] XOR P1[7] XOR P'1[7] = C0[7] XOR 0 XOR 1 = C0[7] XOR 1
Donde: C'0[7] = Valor al que hay que modificar el Byte 7 de C0 (IV);
C0[7] = Byte 7 del bloque 0 del criptograma original (Byte 7 del IV original);
P1[7] = Byte 7 del bloque 1 del texto plano original;
P'1[7] = Valor deseado para el Byte 7 del bloque 1 del texto plano.Por consiguiente, basta con modificar el Byte 7 del vector de inicialización (resaltado en color rojo a continuación) con el resultado de la operación XOR de ese mismo Byte con 1.
C0 (IV original) = 0cc1484ddd73a77fd14dc38062560cf0
C'0[7] = C0[7] XOR 1 = a7 XOR 1 = a6
C'0 (IV modificado) = 0cc1484ddd73a67fd14dc38062560cf0
Por lo que, si no estoy equivocado, cuando nos piden 'Give me Encrypted msg in hex' basta con incluir:
0cc1484ddd73a67fd14dc38062560cf034b8bae89f1b9fb5ef1ee676572899dd
para que se nos muestre la flag:
No hay que olvidar que en esta plataforma para superar el reto hay que enviar el hash sha256 de la flag:
Por lo que el valor a enviar es:
dcde1eaf7b732a6b014d47e2cc6eb31946efd1da78494eae4c9e20d52cc2efbe
Comentarios
Publicar un comentario