Un fichier au format Microsoft Office corrompu nous est fourni et on nous demande de retrouver son contenu…
Nous essayons de l’ouvrir avec Libre Office, à tout hasard, mais la tentative de récupération n’est pas couronné du succès tant attendu.
Nous essayons diverses commandes pour nous faire une idée du contenu :
file 2021-fcsc-reglement_de_participation.docx
2021-fcsc-reglement_de_participation.docx: Microsoft OOXML
xxd -len 512 2021-fcsc-reglement_de_participation.docx
00000000: 504b 0304 1400 0800 0800 b070 8a52 0000 PK.........p.R..
00000010: 0000 0000 0000 8905 0000 1300 2000 5b43 ............ .[C
00000020: 6f6e 7465 6e74 5f54 7970 6573 5d2e 786d ontent_Types].xm
00000030: 6c55 540d 0007 8c94 7160 168f 7160 8c94 lUT.....q`..q`..
00000040: 7160 7578 0b00 0104 e803 0000 04e8 0300 q`ux............
00000050: 00bd 934f 4fc3 300c c5ef 7c8a aa57 b444 ...OO.0...|..W.D
00000060: dcbb 5d80 2bec b03b ca12 7704 f24f 713a ..].+..;..w..Oq:
00000070: b66f 8fd3 8d0a a112 c628 bbc6 7eef e767 .o.......(..~..g
00000080: 39cd 1db4 a233 a9ba df25 70a8 bd9b d73b 9....3...%p....;
00000090: 6bea ead6 3b7a 48ab 7d80 792d 4230 5a8a k...;zH.}.y-B0Z.
000000a0: 4465 9eab 7cd1 8ce8 2218 2c08 b74e 311f De..|...".,..N1.
000000b0: c091 41eb a315 0967 41c8 57b1 0146 cabe ..A....gA.W..F..
000000c0: 079f 75c0 ebef 09c1 6dbe 00b4 253d cfef ..u.....m...%=..
000000d0: e38a 9700 e392 be40 9ac7 2dc4 a815 544b .......@..-...TK
000000e0: 11d3 83b0 d4c0 9f72 12ce 26ce 3346 525e .......r..&.3FR^
000000f0: 2ea3 0fc8 c998 95f7 3e82 f36d ab25 9047 ........>..m.%.G
00000100: 6749 c220 c756 a066 812c 2126 0da7 b1a5 gI. .V.f.,!&....
00000110: 8ff0 7bf8 47d6 ac3e 8d78 58eb 302e 355e ..{.G..>.xX.0.5^
00000120: 60c5 9f71 7fda ee9b 8f8a 624a 40d4 6e43 `..q......bJ@.nC
00000130: b30f 152b b42b 4c60 4169 c1fb abbb 61e7 ...+.+L`Ai....a.
00000140: dc23 a6bd 019c 3ec0 c1b7 30b9 ebec 1a22 .#....>...0...."
00000150: 354f cf1e ac0b 7884 94a8 e33f 921f 9d0b 5O....x....?....
00000160: f095 589b 337e c54f e496 bc7a eb23 faaa ..X.3~.O...z.#..
00000170: e1d9 1717 ef50 4b07 0841 60bc fa24 0100 .....PK..A`..$..
00000180: 0089 0500 0050 4b03 0414 0000 0000 009b .....PK.........
00000190: 6c8a 5200 0000 0000 0000 0000 0000 0009 l.R.............
000001a0: 0020 0064 6f63 5072 6f70 732f 5554 0d00 . .docProps/UT..
000001b0: 07d7 8d71 60a9 8e71 6088 8e71 6075 780b ...q`..q`..q`ux.
000001c0: 0001 04e8 0300 0004 e803 0000 504b 0304 ............PK..
000001d0: 1400 0800 0800 975c 8a52 0000 0000 0000 .......\.R......
000001e0: 0000 0502 0000 1000 2000 646f 6350 726f ........ .docPro
000001f0: 7073 2f61 7070 2e78 6d6c 5554 0d00 07ae ps/app.xmlUT....
La commande file
reconnaît le fichier comme étant de type Microsoft OOXML
, même si le fichier semble être corrompu.
La commande xxd
nous informe que le fichier commence par 504b 0304
, correspondant aux caractères PK..
. Ceci est typique des fichiers .zip
et ce format de fichiers est souvent repris comme format de container par des applications pour stocker des fichiers.
Nous tentons de lire son contenu grâce à la commande unzip -l
:
unzip -l 2021-fcsc-reglement_de_participation.docx
Archive: 2021-fcsc-reglement_de_participation.docx
Length Date Time Name
--------- ---------- ----- ----
1417 2021-04-10 14:05 [Content_Types].xml
0 2021-04-10 13:36 docProps/
517 2021-04-10 11:36 docProps/app.xml
652 2021-04-10 13:54 docProps/core.xml
0 2021-04-10 13:36 _rels/
573 2021-04-10 11:36 _rels/.rels
0 2021-04-10 13:36 word/
0 2021-04-10 13:36 word/_rels/
981 2021-04-10 11:36 word/_rels/document.xml.rels
5956 2021-04-10 14:00 word/document.xml
3313 2021-04-10 11:36 word/styles.xml
5321 2021-04-10 11:36 word/numbering.xml
208 2021-04-10 11:36 word/settings.xml
1106 2021-04-10 11:36 word/fontTable.xml
0 2021-04-10 13:36 word/media/
131579 2021-04-10 11:36 word/media/image1.jpeg
--------- -------
151623 16 files
Nous utilisons la commande unzip -p
qui va extraire tous les fichiers contenus dans l’archive ZIP vers le pipe
ensuite, nous utilisons la commande grep
avec une expression régulière pour extraire le flag et l’afficher.
Le script suivant réalise les opérations nécessaires :
#!/bin/bash
set -e
if [ ! -f 2021-fcsc-reglement_de_participation.docx ]; then
wget https://hackropole.fr/challenges/fcsc2021-forensics-dereglement/public/2021-fcsc-reglement_de_participation.docx -O 2021-fcsc-reglement_de_participation.docx
fi
unzip -p 2021-fcsc-reglement_de_participation.docx | grep --only-matching 'FCSC{.*}'
Le résultat est le suivant :
--2025-01-12 01:23:19-- https://hackropole.fr/challenges/fcsc2021-forensics-dereglement/public/2021-fcsc-reglement_de_participation.docx
Resolving hackropole.fr (hackropole.fr)... 51.91.236.193, 2001:41d0:301::28
Connecting to hackropole.fr (hackropole.fr)|51.91.236.193|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 93740 (92K) [application/vnd.openxmlformats-officedocument.wordprocessingml.document]
Saving to: ‘2021-fcsc-reglement_de_participation.docx’
2021-fcsc-reglement_de_participation.docx 100%[================================================================================================================>] 91,54K --.-KB/s in 0,03s
2025-01-12 01:23:19 (2,65 MB/s) - ‘2021-fcsc-reglement_de_participation.docx’ saved [93740/93740]
FCSC{xxxxxxxx}