2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CPCTF22 writeup

Posted at

この記事の内容

CPCTFという初心者向けのCTFが開催されると聞いて参加してみました。この記事はそのwriteupです。

今回はCTFらしい問題を解きたかったのでPPC(いわゆる競プロ的な問題)は解いてません。

Crypto

暗号に関する問題

My own language

問題

Ya! Lxi zyq etxn sawo rtooxmto? Metxs! Sawo wo x pwin yb owrugt oqcoswsqswyi lwuate saxs etugxlto x gtsste dwsa ysate gtsste. Sat Lxtoxe lwuate, yit yb sat bxryqo oqcoswsqswyi lwuateo, axo ctti wi qot owilt sat swrt yb sat xilwtis Eyrxi Truwet. sat bgxm wo atet. LULSB{dtglyrt_sy_lezusy_dyegn}.

解答

LULSBCPCTFであることに注目すると、LがCに、UがPに対応しているのでABC順をずらした暗号ではないことがわかります。もとの文章が英語であると仮定すれば、語中のxがaに対応するとわかるのでLxiCanであると推測できます。Lxi zyq etxn sawo rtooxmto?は疑問文で文脈からCan you read this...とすると整合します。このように英語らしさと文脈を突き合わせると答えがCPCTF{welcome_to_crypto_world}であるとわかります。

RSA warmup

問題

RSA暗号の $c,e,N$ が $c=810, e=5, N=415411$ と与えられるので平文 $m$ を求める。

解答

まず $N$ が小さいので素数 $p,q$ が求まります。 $d$ は $\bmod (p-1)(q-1)$ において $de \equiv 1$ を満たす数であり、これを用いて $m = c^d \pmod n$と計算すれば復号できます。この値は愚直に計算すると爆発してしまいますが、pythonのpow関数の第3引数に$n$を入れることで簡単に計算できます。

xxorxx

問題

text[i] = a ^ ((b ^ text[i]) ^ a) ^ b ^ aを100回繰り返すことで暗号化する。ただしa,bは1から32の間の整数を繰り返しのたびに計算される。

解答

xorはa^b^b==aというように同じ数を2回xorすると演算前のものと等しくなる性質を持つので右辺はtext[i]^aとなります。また、xorはビットごとの演算で繰り上がりが存在しないので平文と1から32の間の整数を一つxorしたものが暗号文になります。暗号文と1から32の整数をxorしてCPCTFから始まるものが答えです。

Forensics

sunset

問題

画像が与えられている

解答

画像には撮影時の日時や位置情報、カメラや編集ソフトの設定などを含むExifと呼ばれるメタデータがつけられています。これをexiftool flag.jpgコマンドで表示するとComment : CPCTF{3x1f_inf0_15_us3fu1}が見つかります。

Misc

その他の問題

Mellon

問題

トップページ下にある暗号文とMACHINE TYPE : Wehrmacht / Luftwaffe 3 rotorsなどの情報
..-. --.. .... --. -..- .-.. --. . .--. .- .-.. .-.. -.-- ..- - -... --. ..-. .-- -.-- .. .--. -.-. .-. --- - .-.. -.-- .-. .---

解答

暗号文はモールス信号で書かれていると推測できるので、変換するとFZHGXLGEPALLYUTBGFWYIPCROTLYRJとなります。また、Wehrmacht / Luftwaffe 3 rotorsで検索するとエニグマのソルバーが出てくるので変換するとREQUESTGETMETHODFRIENDANDENTERとなります。GETメソッドでfriendとリクエストしてエンターせよ、の通り、アドレスバーにcpctf.space/friendを入力すると解答が得られます。

This is Flag!!

問題

w‮e‭h‮urt‭a‮si‭t

解答

問題文を選択してみると、選択のされ方が不自然であることに気づきます。デベロッパーツールで見ると、&#202e(Right-to-Left Override)という文字の向きを右向きに変更する制御文字が使われています。もとの順番はwehurtasitとなっていることが確認でき、これが答えです。

OSINT

Welcome to OSINT! 1

画像が与えられているので、Google画像検索で検索すると、解答の書かれたブログが見つかる

Shell

シェルになれるための問題。簡単めに設定されている。

Hello Webshell

WebShellにログインしcatコマンドを打つ

netcat

ncコマンドで通信する

Find Image

ディスクイメージが与えられているのでsudo mount image.img /mnt/コマンドでマウントする。また、ファイル階層が深いのでfind . -type f -name "*flag*"コマンドで検索するとよい。アンマウントするときはsudo umount image.imgを使う。

Veeeeeeery Long Text

サイズの大きいファイル内で検索するためgrepコマンドを用いる

Web

Forbidden 1

デベロッパーツールを見ると、cookieにadmin=falseが設定されている。よって以下のように要求すればよい。

curl -b 'admin=true' https://forbidden-1.cpctf.space/private/flag.txt

POST ME!

jsonをPOSTして、その後DELETEをリクエストする。jsonをPOSTするときはヘッダーにcontent-typeをセットする必要があるので注意。

curl -H "content-type: application/json" -X POST -d '{"password":"pass"}' https://postme.cpctf.space/
curl -X DELETE https://postme.cpctf.space/

Robots

robots.txtにアクセスする。これは検索エンジンがクロールするときに使う情報を記すファイルである。

あとがき

解こうとして解けなかった問題も多かったのでちゃんと復習したい。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?