Eyes, JAPAN Blog > We Chall — "Training: ASCII"

We Chall — "Training: ASCII"

beko

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

こんにちは、関根です。
今回はexploitを書く大切さを知ってもらいたいと思います。
なぜなら、CTFなどの大会では問題の答えがわかるだけで点数がもらえるので良いのですが、それでは次回にまた似たような問題を解くときに、一から始めたいといけません。そこで、答えを導くためのexploitを書いておけば、より時間を短縮して、問題を解くことが可能となります。

今回はWe Challの”Training: ASCII”のexploitを書いて見たいと思います。
この問題は数字をASCIIコードに変換し、メッセージを出すことができれば、答えがわかるものです。

20141115021134

自分が初めてこの問題を解いた時にはASCIIコード表を使い手作業で1つの数値を1つの文字に変換しました。

20141115021159

         ASCII文字コード : IT用語辞典
84   = T
104 = h
101 = e
のように変換していけばこの問題は解けます。
しかし、これでは、変換する文字列が多くなればなるほど時間がかかってしまい、大変です。なので、exploitを書いてみましょう。

20141115021327

このように書けばすべての数値が変換されて、メッセージ出力されるはずです。
実際に実行してみると、

20141115021408

となりこれにより答えは”agonnrmgcbld”だと思われます。

20141115021424

20141115021434

 無事正解できました。
この問題は、数値をASCIIコードに変換するだけのとても、簡単なものですが、exploitを書くことによって次に同じような問題にあたってもこれを使うだけで、大幅に時間を短縮することができます。
今回の自分のプログラムでは、10進数のデータをプログラムに書いていたので、これを別のファイルから読み取るようにしてプログラムに変更を加えず、特定のファイルに10進数のデータを書いて変換するようにすれば、もっと良いプログラムになると思います。
これがあれば問題が変わってもすぐに答えがわかりますね。
問題
76, 101, 116, 39, 115, 32, 119, 114, 105, 116, 101, 32, 116, 104, 101, 32, 101, 120, 112, 108, 111, 105, 116, 46

20141115024429

このブログの更新日は毎週土曜日です。
次回もお楽しみに!

Comments are closed.