Archives de catégorie : CTF

Français [NDH 2017] Back On The Event

Salut tout le monde,

De Samedi 24 10H du matin, à dimanche 25 7H du matin a eu lieu, comme tout le monde le sait, la plus grosse conf publique française : la Nuit Du Hack. Et comme tous les ans, une conf énorme, avec des supers prez, des potes, des workshops, et de la bière 🙂

Mais, la NDH, ce n’est pas que de la conf, ce sont aussi des challenges, et chez 0x90r00t, on aime les challenges (sans déc’ 🙂 ) !
Du coup, on a fait le CTF et nous sommes arrivés 7ème, ce qui est quand même plutôt cool !

Cette année, Wavstone a également mis un mini-CTF en ligne durant la journée, histoire de s’amuser un peu, et on a terminé 3émes, nice !

Oh… Et, euhhh, on a failli oublié, mais, il y avait un « Spying challenge, et… bah… on a fini premier ! 😉

Voilà les Write Ups:

Et le classement final (merci à P_TE pour l’image) !

 

Français [MMA CTF 2016] [Crypto 180 – ESPer] Write Up

Description

nc cry1.chal.ctf.westerns.tokyo 37992


============================= About ===============================
You are very good ESPer, so that you can change any local variable
value to 2048 bit random integer.

You should specify the ESP string as the line number and variables'
name to change separated by colon.

For example, if the source code is below and your input is "2:x",
the line 2 works the same as "x = rand(2 ** 2048); puts x". So the
output is random number.
+---+-------------------------------------------------------------------------+
| 1| x = 3 |
| 2| puts x |
+---+-------------------------------------------------------------------------+
Encryption Source code is here.
+---+-------------------------------------------------------------------------+
| 1| n, e = read_publickey(ARGV[0]) |
| 2| print "Message m: " |
| 3| STDOUT.flush |
| 4| m = STDIN.gets.to_i |
| 5| c = encrypt(m, e, n) |
| 6| puts "Encrypted: #{c}" |
| 7| STDOUT.flush |
+---+-------------------------------------------------------------------------+

Decryption Source code is here
+---+-------------------------------------------------------------------------+
| 1| p, q, dp, dq, qinvp = read_privkey(ARGV[0]) |
| 2| print "Encrypted Message c: " |
| 3| STDOUT.flush |
| 4| c = STDIN.gets.to_i |
| 5| m1 = decrypt(c, dp, p) |
| 6| m2 = decrypt(c, dq, q) |
| 7| m = merge(m1, m2, p, q, qinvp) |
| 8| puts "Decrypted: #{m}" |
| 9| STDOUT.flush |
+---+-------------------------------------------------------------------------+

Continuer la lecture de [MMA CTF 2016] [Crypto 180 – ESPer] Write Up