TokyoWesterns CTF 2018 Revolutional Secure Angou
Crypto & Network & Etc/Crypto Practice 2019. 11. 12. 00:30문제 파일은 아래와 같다.
revolutional-secure-angou-de97106aa248a41a40fdd001fc5f7b4b4f28a39eb6bcabf8401b108b7a8961c5.7z
압축을 풀어보면 암호화된 flag, pem 형식의 공개키, 문제 소스가 존재한다.
generator.rb
require 'openssl'
e = 65537
while true
p = OpenSSL::BN.generate_prime(1024, false)
q = OpenSSL::BN.new(e).mod_inverse(p)
next unless q.prime?
key = OpenSSL::PKey::RSA.new
key.set_key(p.to_i * q.to_i, e, nil)
File.write('publickey.pem', key.to_pem)
File.binwrite('flag.encrypted', key.public_encrypt(File.binread('flag')))
break
end
소스는 루비를 통해 pem 형식의 공개키를 만들고 해당 공개키로 flag를 암호화하는 구조이다.
pem 파일에 존재하는 공개키를 구하기 위해 아래 툴을 사용하였다.
ssrinc@ssrinc-virtual-machine:~/RsaCtfTool$ ./RsaCtfTool.py --key ./publickey.pem --dumpkey
[*] n: 16809924442712290290403972268146404729136337398387543585587922385691232205208904952456166894756423463681417301476531768597525526095592145907599331332888256802856883222089636138597763209373618772218321592840374842334044137335907260797472710869521753591357268215122104298868917562185292900513866206744431640042086483729385911318269030906569639399362889194207326479627835332258695805485714124959985930862377523511276514446771151440627624648692470758438999548140726103882523526460632932758848850419784646449190855119546581907152400013892131830430363417922752725911748860326944837167427691071306540321213837143845664837111
[*] e: 65537
'Crypto & Network & Etc > Crypto Practice' 카테고리의 다른 글
TAMUCTF 2019 Crypto Writeup (0) | 2019.11.15 |
---|---|
Seccon CTF 2017 Ps and Qs (0) | 2019.11.12 |
Plaid CTF 2015 Strength (0) | 2019.11.11 |
TokyoWesterns CTF 2019 baby_rsa (0) | 2019.11.11 |
KCTF Operation 1 (0) | 2019.11.08 |