Hermit – Part 1

参考writeup
codelearn.me
普通に画像アップロードしてみました。

画像を選択するとPHPのエラーが発生しました。

Writeup通りにファイルの内容を変更するといかにもコマンド実行したそうなエラーになりました。

拡張子に「.php」は含まず、「.png」だけでしたが、内容を解釈しているようでした(そんなことあるのか?)

アップロードしたPHPの通りにパラメータを設定するとコマンド実行できるようになりました。

lsコマンドでたどっていくと、フラグ用のテキストファイルがありました。

戦犯っぽい「show.php」の内容です。

何が原因なのかわからなかったので、ローカルにサーバ立てて検証しました。


ひとまず再現はできました。

指定しているファイルをなくしてみます。

指定した文字列がそのまま表示されました。
ifの中のechoですね。

初めて見る「@include」が原因のようでした。
ドキュメントはこれですかね。
「指定されたファイルを読み込み、評価します。」と記載があるので、確かにPHPコードが動きそうでした。
www.php.net
PikCha

参考writeup
https://github.com/JackLowry/pikcha
https://github.com/JrGoomer/CTF-Writeups/blob/master/UMass2021/PikCha.md
https://szymanski.ninja/en/ctfwriteups/2021/umassctf/pikcha/
適当に入力してみましたが、意味がわかりませんでした。
これ解いた人はどんなきっかけから解いたんでしょうか。

Writeup通りCookieをデコードしました。
雰囲気からJWTであるということはわかってましたが、ここからどうやってフラグ出すんでしょうか。
Writeupを読むと、ポケモンの図鑑Noを当てていくらしいです。



カウントが進みました。
これを500回やれば良さそうです。
答えはset-Cookieされるので、そこから読み取っていけば自動で出来そうです。
pythonでのpocが多かったので、参考に実行してみます。

Burpでキャプチャしているのですが、うまく行っているようです。

フラグが出てきました。

pythonメモ
http用
requests
json用
json
json.loads()
heim

参考Writeup
https://domiee13.github.io/posts/UMassCTFWriteUp2/
とりあえず入力して「Enter」を押したところ、ダイレクトにトークンが表示されました。

Writeupを見ると、ディレクトリを調査するようです。
確かに、ディレクトリを探すくらいしかやることはなさそうです。
CTFは終了しているので、大量にリクエストは送らず、Writeupに記載してあるディレクトリだけ見ます。

Authorizationヘッダを使用しましたが、アクセスできず。

「Odin」しか見れないのでしょうか?
エラーメッセージを読むことは何でも大事ですね。
Odinで再度トークンを発行したところ、フラグが表示されました。

感想
どの問題も学びがあって面白かったです。
Writeupが公開されていると、終わった後も検証が出来るのでとても助かります。
今回はひねったような回避系が無かったので、簡単な部類だったのでしょうか。
私はCTFは詳しくないので、たまたまやってみようと思ったCTFがこのレベルであってくれて本当に助かりました。
リアルタイムでやるかはわかりませんが、引き続きWriteup見ながらいろいろ検証してみようと思います。
PikCha2はWriteupがあったのですが、画像加工がうんぬんで面白くなさそうだったので実施していないです。
コメント