0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleCTF #beginners/re-gatekeeper

Posted at

image.png

問題

image.png

解いてみた

添付ファイルをダウンロードして、解凍します。

image.png

何のファイルかわからないのでBZで見たところ、ELFファイルでした。
Linuxの実行ファイルです。Windowsでいうexeみたいなイメージ。

image.png

bintextでフラグがないか見てみます。

image.png

flagの中は変数が入るっぽくて答えは分かりませんでした。
直前に怪し目な文字列があったので勘でやってみましたが、どちらも違いました。

  • CTF{0n3_W4rM}
  • CTF{zLl1ks_d4m_T0g_I}

IDAを使ってフローを見てみます。

image.png

なんか正解するとflagが出てきそうです。
アセンブリを読むのは骨が折れるのでUbuntuで動かしてみます。

image.png

引数にユーザ名とパスワードを入力してくれというエラーで何もすることなく終了しました。
ユーザ名とパスワードわかりませんが、さっきの文字列が怪しげなのでやってみます。

image.png

ダメでした。ユーザ名とパスワードを逆にしてみます。

image.png

ダメでした。
が、よく読んでなかったのでさっき気づきませんでしたが

Incorrect username

という文字があることに気づきました。
最初のときはパスワードが違うというエラーで今回はユーザ名が違うというエラー。
ということは1回目はユーザ名はあっていたということになりそうです。

もう一度IDAを見てみます。

image.png

単純に文字列を比較しているだけっぽいので、あってると思うのですが。。。
と思ったらその前の右に行く処理がちょっと気になります。
右に行くとまた上に戻るようです。
もしかしたら入力した文字列を編集しているのかもしれません。
が、アセンブラが読めません。

調べたところ
Linuxのltraceコマンドを使うと関数呼び出しを見ることができるようです。
これでstrcmpを見ればいいのではないでしょうか。

やってみます。

image.png

大量のデータがあふれてきてこれは厳しい。
ファイルに出力します。

image.png

そしてtest.txtの中からstrcmpを見ます。

image.png

パスワードの1つ目の引数の文字がひっくり返ってる。
さっきのIDAを見る限り1つ目の引数はたぶん入力の文字列の方だと思いますが、一応確認してみます。

image.png

これを実行して再度test.txtのstrcmpを見ます。

image.png

はやり入力した文字列がひっくり返るようです。
さっきの謎の処理のところでひっくり返しているんでしょう。
なのでひっくり返した文字列を引数にして再度実行してみます。

image.png

やりました。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?