LoginSignup
0
0

More than 3 years have passed since last update.

picoCTF2018 writeup (absolutely relative)

Posted at

問題

与えられたプログラムを実行して,flag.txtの中身を出力させます.

解法

そのまま実行すると,権限がないのでダメだと言われます.
ソースコードを見てみると,以下のような行があります.

absolutely-relative.c
15:     file = fopen("/problems/absolutely-relative_1_15eb86fcf5d05ec169cc417d24e02c87/flag.txt" , "r");
21:     file = fopen( "./permission.txt" , "r");
30:     if (!strncmp(permission, yes, yes_len)) {

permission.txt を読んで,中にyesと書かれていれば,flag.txtを読み込めるらしい.

しかし,プログラムを実行するディレクトリでは新たにファイルを作成することができません.
ここで,permission.txt が相対パスで書かれていることに注目します.
つまり,ファイルを作成可能なディレクトリからプログラムを実行すればいいわけです.

ホームディレクトリに移動し,権限ファイルを作成して,プログラムを実行したらフラグを獲得できました.

$ cd ~
$ echo "yes" > permission.txt
$ /problems/absolutely-relative_1_15eb86fcf5d05ec169cc417d24e02c87/absolutely-relative 
()
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