うっかり戻りアドレス書き換えられたらシェル起動できちゃうって冷静に考えてやばくね?気をつけなきゃ...
初心者向けヒント
- この問題は Pwn カテゴリー、すなわち Pwnable (Binary Exploitation) に関する問題です。
- 難易度は Hard になっています。これまでの Easy, Medium より難しく、特に Daily AlpacaHack で初めて CTF を知った方は自力で解くことは難しいでしょう。
- ですので、詰まった場合は適宜 AI も駆使して、解法の糸口を見つけることをおすすめします。
- Pwn は初心者に難しく思われやすいですが、コンピューターの低レイヤーの挙動を楽しめる刺激的なカテゴリーなので、ぜひ挑戦してみてください。
- もし解けなくても、終了後に他のプレイヤーが公開する解法(writeupと言います)を見て、ぜひ復習してみてください。
- 問題公開から 24 時間後に writeup タブが下のタブ一覧に追加されます。
- この問題の配布ファイルでは、C言語のソースコード
main.cとそれをコンパイルしたバイナリchalが与えられています。 - このプログラムでは、プレイヤーから
pos,valの入力を受け付けます。 - 今回のゴールは、リモート環境で
win関数を実行してシェルを起動することです。 - 適切な
pos,valを送信するとwin関数が呼べるので、そのような値を見つけてください。 - リモート環境には
ncコマンドで接続します。 - シェルが取れたら
flag.txtを読んで、フラグを取得してください。