Cloudsourcing

以下のファイルが与えられた。

These files were given:

cloudsourcing |-- __MACOSX | |-- ._key.pub | `-- ._mystery.txt |-- key.pub `-- mystery.txt

key.pub の内容のうちBase64らしい部分をCyberChefでデコードし、Parse ASN.1 hex string をかけると、 1個の大きい整数と1個の小さい整数が出てきた。

I decoded a part of key.pub that looks like Base64 and applying "Parse ASN.1 hex string" in CyberChef. As a result, a large integer and a small integer appeared.

From Base64, To Hex, Parse ASN.1 hex string - CyberChef

そこで、まず大きい整数を10進数に変換した。

Firstly, I converted the large integer to decimal.

From Base - CyberChef

得られた数をfactordb.comで調べると、2個の素数の積であることがわかった。

次に、mystery.txt の内容をBase64デコードし、16進数に変換した。

factordb.com revealed that the obtained integer is a multiple of two prime numbers.

Then, I Base64-decoed the contents of mystery.txt and converted the result to hexadecimal.

From Base64, To Hex - CyberChef

これまで得られた情報を用い、key.pub から得られた大きい整数が n、小さい整数が e であると仮定し、以下のプログラムで mystery.txt の内容に対しRSA暗号の復号を行った。

Using these information, I applied decryption of RSA cipher to the contents of mystery.txt using this program, assuming the large integer obtained from key.pub is n and the small integer is e.

decode.py

復号結果にCyberChefの From Hex をかけることで、flagが得られた。

I obtained the flag by applying "From Hex" on CyberChef to the result of decryption.

From Hex - CyberChef

kqctf{y0uv3_6r4du473d_fr0m_r54_m1ddl3_5ch00l_abe7e79e244a9686efc0}

Killer Queen CTF