DNACovid19
Puntuación: 100
El enunciado de este reto indica lo siguiente:
We have found a misterious message inside our biological lab server. Could it contain a cure?
-
Download: https://drive.google.com/file/d/1b4PVvSzl9-SKzz-rsdVPR-1tSGQ6-Ag8/view?usp=sharing
-
Challenge created by Vis0r @hackplayers
En este reto se nos da la imagen “seqfragment.jpg”
A partir del nombre del reto y con algo de investigación descubrimos que tal vez se trate de una codificación utilizando cadenas de ADN. Buscando en diferentes webs vemos que la codificación de código de ADN tiene sentido:
Así que extraemos obtenemos la cadena de la anterior imagen y creamos un scrypt en python que nos haga la conversión:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
mapping = { 'AAA':'a', 'AAC':'b', 'AAG':'c', 'AAT':'d', 'ACA':'e', 'ACC':'f', 'ACG':'g', 'ACT':'h', 'AGA':'i', 'AGC':'j', 'AGG':'k', 'AGT':'l', 'ATA':'m', 'ATC':'n', 'ATG':'o', 'ATT':'p', 'CAA':'q', 'CAC':'r', 'CAG':'s', 'CAT':'t', 'CCA':'u', 'CCC':'v', 'CCG':'w', 'CCT':'x', 'CGA':'y', 'CGC':'z', 'CGG':'A', 'CGT':'B', 'CTA':'C', 'CTC':'D', 'CTG':'E', 'CTT':'F', 'GAA':'G', 'GAC':'H', 'GAG':'I', 'GAT':'J', 'GCA':'K', 'GCC':'L', 'GCG':'M', 'GCT':'N', 'GGA':'O', 'GGC':'P', 'GGG':'Q', 'GGT':'R', 'GTA':'S', 'GTC':'T', 'GTG':'U', 'GTT':'V', 'TAA':'W', 'TAC':'X', 'TAG':'Y', 'TAT':'Z', 'TCA':'1', 'TCC':'2', 'TCG':'3', 'TCT':'4', 'TGA':'5', 'TGC':'6', 'TGG':'7', 'TGT':'8', 'TTA':'9', 'TTC':'0', 'TTG':' ', 'TTT':'.' } string = 'GAATAGTCGCTCGCGTAGTATTAAGAACTGTCGCTCGGAGCTTCGCTAGAAGGTGTACTCGGAGCTGATGTTGAAGAGTCGCTCGAAGCTCGTTATGAATAGTCCGTCGAGTAGTATTAAGAACTGTCCCTCGGAGCGTATGGGGAAGTTGTCCTCGGAGCGCGTGTGGAACTGTCGGAAGCAGCTCGTTACGAATATGTCCTCGAGTAGTATGTCGAACTGTCGGAAGCAGCTTCGCTG' def decode_dna( string ): pieces = [] for i in range( 0, len(string), 3 ): piece = string[i:i+3] # pieces.append() pieces.append( mapping[piece] ) return "".join(pieces) print decode_dna(string) |
El cual nos devuelve la siguiente cadena:
1 |
GY3DMYZWGE3DON3CGRSDONJVGI3DGNBZGY2TIYZWGE2DOMZQGVTDOMBUGE3GKNBXGZTDIYZTGE3GKN3E |
Decodificamos la misma en base32, obteniendo un código en hexadecimal:
1 |
666c61677b4d75526349654c6147305f70416e476f4c316e7d |
Y ahora convertimos el hex en ascii para obtener nuestra flag:
1 |
flag{MuRcIeLaG0_pAnGoL1n} |
Puedes ver el resto de writeups en este enlace.