問題
解いてみた
javaのソースコードを読み解く問題です。
パット見、42行目にフラグの中身っぽいのが書かれているので、一応入力してみましたが、違いました。
パスワードを入力してcheckPasswordでチェックして正解ならそれがフラグという問題のようです。
こういうのは考えるより実行しながら答えに寄せていくほうがラクだし確実です。
Java実行環境(Webブラウザ)
http://ab77.jp/java/java.php
ここで実行させます。
6行目のところにべた書きするようにします。
最初の条件は32文字なのでそこだけ合わせて
1234567890abcdefghijklmnopqrstuvwxyzABCDE
と打ち込んで実行してみます。
41行目と42行目の間でsを出力するようにします。
90abcdefnmlkjihgCpArytwvuxszqBoD
こんな感じで出力されました。
90abcdefnmlkjihgCpArytwvuxszqBoD
↓
jU5t_a_sna_3lpm16g84c_u_4_m0r846
となるように
1234567890abcdefghijklmnopqrstuvwxyzABCDE
を並び替えれば終了です。
32文字全部を使ってるわけではないので空いているところにスペースを入れてみました。
が、それだとscanner.next()で区切り文字として判断されるようで、うまくいきませんでした。
なので!を入れて答えてみるとJava自体はうまくいきました。
がフラグとして答えると不正解でした。
空白の部分は何を入れればいいのか?
あぁ、この!のところはpicoCTF{}と文字数が一緒だったのでこれに変換して正解でした。