Background Image

BLOG

17 Şubat 2018 CTF

DKHOS - Crypto 100 - Sevgili günlük


Bu soru crypto sorularının neredeyse hello worldü niteliğindeydi. Neredeyse her grubun çözmesini bekliyorduk ama çözüm sayısı oldukça düşük oldu. Soru içerisinde bize bir RSA public keyi ve bu key ile şifrelenmiş encrypted flag bulunmaktaydı. Yapmamız gereken şey verilen public key içerisinden n değerini bulup, factorize etmek ve private keyi bu değerler kullanarak oluşturmaktı.

Soruyu çözmek için ilk olarak RSA'in n değerini public key içerisinden çıkarmak gerekiyordu. Bunun için buradaki gibi bir servis kullanabilirdik veya offline araçlar sayesinde alabilirdik. Buradan elde ettiğimiz değerin decimal hali aşağıdaki gibidir:

66322443632192415393425177414261404350913380472123214028807...

Daha sonra bu değeri factordb yardımıyla factorize edebiliriz.

Factorize ettiğimize göre Rsatool kullanarak yeni private keyi oluşturabiliriz:

rsatool.py -f PEM -o key.pem -p 81438592...  -q 81438592...

key.pem dosyası oluştuktan sonra da openssl yardımıyla flagi elde edebiliriz:

openssl rsautl -decrypt -inkey key.pem -in flag.txt.enc -out flag.txt

Flag de DKHOS_{b4by_h3ll0_w0rld_crypt0_b4by} olmaktaydı.