Last year people were angry at my chall for needing the use of open-source tools such as bkcrack. This year's chall still has zips, but they have NO passwords. HA ! You still need to decrypt the flag, tho. glhf
challenges.hackday.fr:53073
Ce challenge tourne sur un docker et n'est pas disponible
Solution
On sait que le flag commence par HACKDA, en envoyant un fichier commençant par la même chose, on peut voir que le résultat (notre fichier chiffré) commence de la même façon que le flag chiffré.
On en déduit que pour un même caractère à la même position, on obtient la même chose. Il faut donc tester tous les caractères à toutes les positions et comparer avec le flag chiffré pour en déduire le flag.
En python ça donne :
import requestsfrom io import BytesIOfrom bs4 import BeautifulSoupimport zipfileimport stringurl ='http://challenges.hackday.fr:53073'charset = string.ascii_letters + string.digits + string.punctuationflag_size =50defattempt(c:str): response = requests.post(f'{url}/secure_sharing',files={'file': BytesIO(c.encode()* flag_size)}) link =BeautifulSoup(response.content,'html.parser').find('a')['href'] z = zipfile.ZipFile(BytesIO(requests.get(f'{url}{link}').content),'r')return z.read('file.enc'), z.read('flag.txt.enc')flag =['_']* flag_sizefor c in charset: enc, flag_enc =attempt(c)print(c,end='')for i inrange(len(flag_enc)):if enc[i]== flag_enc[i]: flag[i]= cprint(''.join(flag))
a _____________________________a____________________
b _____________________________a____________________
c _________________c___________a____________________
d _________________c___________a____________________
e _____________e__ec_e________ea______e_____________
f _____________e__ec_e________ea______e_____________
g _____________e__ec_e________ea______e_____________
h _____________e__ec_e________ea_____he_____________
i _________i___e__ec_e________ea___i_he_____________
j _________i___e__ec_e________ea___i_he_____________
k _________i___e__ec_e________eak__i_he_____________
l _________i__le__ec_e________eak__i_he_____________
m _________im_le__ec_e________eak__i_he_____________
n _________im_le__ec_e________eak__i_he_____________
o _________im_le__ec_e____o___eak__i_he_____________
p _________imple__ec_e____o___eak__iphe_____________
q _________imple__ec_e____o___eak__iphe_____________
r _________imple__ecre____or__eak__ipher____________
s _________imple__ecre_s__or__eak__ipher____________
t _________imple__ecrets__or__eak__ipher____________
u _________imple__ecrets__or__eak__ipher____________
v _________imple__ecrets__or__eak__ipher____________
w _________imple__ecrets__or__eak__ipher____________
x _________imple__ecrets__or__eak__ipher____________
y _________imple__ecrets__or__eak__ipher____________
z _________imple__ecrets__or__eak__ipher____________
A _A___A___imple__ecrets__or__eak__ipher____________
B _A___A___imple__ecrets__or__eak__ipher____________
C _AC__A___imple__ecrets__or__eak_Cipher____________
D _AC_DA___imple__ecrets__or__eak_Cipher____________
E _AC_DA___imple__ecrets__or__eak_Cipher____________
F _AC_DA___imple__ecrets_For__eak_Cipher____________
G _AC_DA___imple__ecrets_For__eak_Cipher____________
H HAC_DA___imple__ecrets_For__eak_Cipher____________
I HAC_DA___imple__ecrets_For__eak_Cipher____________
J HAC_DA___imple__ecrets_For__eak_Cipher____________
K HACKDA___imple__ecrets_For__eak_Cipher____________
L HACKDA___imple__ecrets_For__eak_Cipher____________
M HACKDA___imple__ecrets_For__eak_Cipher____________
N HACKDA___imple__ecrets_For__eak_Cipher____________
O HACKDA___imple__ecrets_For__eak_Cipher____________
P HACKDA___imple__ecrets_For__eak_Cipher____________
Q HACKDA___imple__ecrets_For__eak_Cipher____________
R HACKDA___imple__ecrets_For__eak_Cipher____________
S HACKDA__Simple_Secrets_For__eak_Cipher____________
T HACKDA__Simple_Secrets_For__eak_Cipher____________
U HACKDA__Simple_Secrets_For__eak_Cipher____________
V HACKDA__Simple_Secrets_For__eak_Cipher____________
W HACKDA__Simple_Secrets_For_Weak_Cipher____________
X HACKDA__Simple_Secrets_For_Weak_Cipher____________
Y HACKDAY_Simple_Secrets_For_Weak_Cipher____________
Z HACKDAY_Simple_Secrets_For_Weak_Cipher____________
0 HACKDAY_Simple_Secrets_For_Weak_Cipher____________
1 HACKDAY_Simple_Secrets_For_Weak_Cipher_11_________
2 HACKDAY_Simple_Secrets_For_Weak_Cipher_11_______2_
3 HACKDAY_Simple_Secrets_For_Weak_Cipher_113______2_
4 HACKDAY_Simple_Secrets_For_Weak_Cipher_1134_____2_
5 HACKDAY_Simple_Secrets_For_Weak_Cipher_11345____2_
6 HACKDAY_Simple_Secrets_For_Weak_Cipher_113456___2_
7 HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567__2_
8 HACKDAY_Simple_Secrets_For_Weak_Cipher_11345678_2_
9 HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
! HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
" HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
# HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
$ HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
% HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
& HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
' HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
( HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
) HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
* HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
+ HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
, HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
- HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
. HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
/ HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
: HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
; HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
< HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
= HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
> HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
? HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
@ HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
[ HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
\ HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
] HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
^ HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
_ HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
` HACKDAY_Simple_Secrets_For_Weak_Cipher_1134567892_
{ HACKDAY{Simple_Secrets_For_Weak_Cipher_1134567892_
| HACKDAY{Simple_Secrets_For_Weak_Cipher_1134567892_
} HACKDAY{Simple_Secrets_For_Weak_Cipher_1134567892}
~ HACKDAY{Simple_Secrets_For_Weak_Cipher_1134567892}