HSCTF 7参加しました
Although anyone is free to participate in HSCTF, only teams composed entirely of middle and high school students (6-12) in the 2019-2020 school year and are permanent residents in the United States are eligible for prizes. Students attending colleges, universities, or high schools outside of the United States are not eligible for prizes.
参加は誰でも可能だけど、賞金は米国の中高生チームにしかでないよ、みたいな。
賞金狙えるほど技術力があるわけではないので関係ないが、問題は中高生向けの難易度なのかな?
一人寂しく参加しようとしていたところ、
同サークルで同学年のふたばとが参加してきてくれた為、二人での参加となった。
結果
HSCTFお疲れ様でした
— よーでん (@y0d3n) 2020年6月6日
個人1020点。
Webあと1個解けなかった。くやしい
writeupですhttps://t.co/k3F6dLDH6x#ctfから逃げるな pic.twitter.com/r18MEGv7mI
1466チーム中337位。
少し不満なのが、1000チーム以上解いてる問題と150チームくらいしか解けてない問題が 同じ点数になっていたこと。得点の減少率がえぐすぎる。
150チームの方の問題はWebのTraffic Lights W
。
結局解けてないので得点減ってても影響はないんですけどね・・・
/etc/passwd
とか、fileupload.php
とかは抜けたけど、その後どうすればいいのかよくわからない。
「10%問題なのでたぶん難しい」や、「解けたとしてもどうせ100点」
などの気持ちでモチベーションが下がってしまった。(わからなかったことに対する言い訳)
感想
Web
楽しかったのはBroken Token
。
JWT認証の回避(?)に関する問題。詳しい解法はWriteupに書いてあるが、
署名とかの問題をやるのは初めてだったのでとても良い経験になった。
JWTパッケージがエラーを吐いたとこで躓いてしまったが、
pip install pyjwt==0.4.3
でバージョン指定してインストールすれば上手くいった。
あと、Very Safe Login
が追加直後に気づくことができ、即解いた。
SQLi等を試してみるも特に反応なし、続いてソースコードを見たら普通に書いてあった。
大急ぎでFlagを提出し、Solve 1
の表示を見て喜んだが、ラグだったようで22番目だった。
Web以外
My First Calculator
が面白かった。入力したのが文字列としてではなく、
Pythonのコードとして解釈されることで、任意コードを実行されてしまうという物。
hoge
と入力したときにNameError: name 'hoge' is not defined
と表示されてたので気付いた。
エラーメッセージを読むのは大事だなと改めて認識させられた。
あくまでも計算機なので、数字の入力はintしか受け付けない。
ord
が1文字ずつしかstr
をint
に変換できなかったので1文字ずつflag.txtの中身を見ていった。
自動化するか、もっといい方法があるか。
むしろもっといい方法があって欲しい。
あとがき
「ちょっと知ってれば解ける問題」以上の問題が解けるようになってきているのがとてもうれしい。
Traffic Lights W
とかは、脆弱性を見つけてからが本番って感じがする。