0
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 5 years have passed since last update.

ksnctf 31 KanGacha 130pt

0
Posted at

問題

image.png

解いてみた

リンクが2つあるので上の「http://ctfq.sweetduet.info:10080/~q31/kangacha.php 」にアクセスしてみます。

image.png

Gachaボタンを押すと下に名前が出てきました。
1回押すたびに一つずつ。

2個目のリンク押してみます。
PHPのソースが出てきました。

image.png

このソースがさっきのwebページのソースということでしょう。
何らかの条件でGachaボタンを押すとFLAGが出るという流れだと思います。

ソースの意味を長々と書いてもしょうがないので、要約すると

  • ランダムで0~9の値をだす。
  • ランダム値をCookieの値shipに保存する
  • (FLAG_XXXXXXX + ランダム値)をSHA512した値をCookieの値signatureに保存する
  • FLAGを出すにはCookieの値shipが10のとき かつ Cookieの値signatureが(FLAG_XXXXXXX + 10)をSHA512した値であること

ということです。

cookieの値はブラウザで編集できるので肝となるのは(flag_XXXX + 10)をSHA512した値を算出することということです。

ハッシュする前の値が不明(flagが不明なため)なのに、ハッシュ後の値が分かるもんなんですかね。
調べてみます。

HashPumpというのを使うと予測できるそうです。
CTF/Toolkit/HashPump - 電気通信大学MMA

すごいですね。
ハッシュ値って予測不能と言われていますが、意外ともろかったりするのかもしれません。。。

既知のハッシュ前の文字列とハッシュ後の文字列が必要らしいので、一度Gachaボタンを押して、5が出てきたのでこれを使って必要な値をまとめると

項目
既知のハッシュ前の値 5
sha512(FLAG_XXX + 5) b5ff24ed3b12bcd01169c1920365397d7568adf25bfb21dd6dcae82c7de93bd00b732e3f0cc5f17370982bd09ff97d255c65c12b459bd443a68b738179a44a19
FLAGの文字数 ここは勘ですが、21が多いので21
追加文字列 ,10(区切り文字の,が必要)

これでやってみます。

image.png

というような結果になりました。

Cookieを編集してみます。

image.png

これでGachaボタンを押す。

image.png

んーダメです。
通信をWiresharkで見てみます。

image.png

まさかの2回通信していることが分かりました。
さっき編集したのは1回目の通信だと思うので、そのときに初期化?されてしまって2回目は数値が1個のやつに戻るみたいです。

Burp Suite使って2回目の通信を編集します。

image.png

これでFoward

image.png

なかったことにされてしまいます。。。
よくわからなくなってきたのでXAMPPをインストールしてPHPをローカルで実行できる環境を作りました。
ソースをコピーしていろいろ試したところ、URLエンコードをしないといけないことが分かりました。
ただここら辺はなんでかよくわからないんですが、

  • 10の前の「,」はそのままでいい。
  • 大量にある\x00とかの「\x」を「%」に変換する。

という編集が必要でした。

image.png

image.png

答えは出たもののエンコードの意味がよく分からなくて不完全燃焼です。。。

0
0
0

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
0
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?