25번 문제 기본 페이지로 가면 GET 메소드로 file 파라미터 값에 "hello" 문자열이 대입되어 있다.
"hello"가 대입되어 있으니 아래쪽에 "hello world"가 출려된다.
보아 하니 해당 페이지(index.php) 경로에 "hello.txt", "password.php" 가 있고 문제를 풀기 위해서는
"password.php" 파일 내용을 보면 될거 같다. (Local File Include 관련 취약점 인듯)
hello.txt 를 보아하니 "index.php?file=hello" URL 결과와 동일하다.
클리어를 위해 "password.php" 파일을 보면 아무 내용도 출력되지 않는다.
제일 처음 사진을 보면 file 파라미터에 "hello" 만 입력되어도 "hello world"가 출력되었는데
해당 문자열은 "hello.txt" 파일의 내용과 동일하였다.
즉, 서버에서 파일을 include 시키면서 뒤에 자동적으로 ".txt" 확장자를 붙인 것이다.
그렇기 때문에 "password.php"를 입력했을 때 파일 내용이 보여지지 않은 것이다.
=> "?file=hello" => "hello.txt"
=> "?file=password.php => "password.php.txt"
문제를 클리어하기 위해 자동적으로 붙는 ".txt"를 무력화 시키면 된다.
"%00" (널문자)를 입력하면 문제가 클리어 된다.
컴퓨터는 문자열 끝에 자동적으로 널문자가 들어가게 된다.
즉, 문자열 끝을 의미하는 널문자를 입력함으로써 뒤에 자동적으로 오는 ".txt"는 인식되지 않아
"password.php" 내용이 출력되는 것이다.
'Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 27번 (0) | 2015.08.16 |
---|---|
Webhacking.kr 26번 (0) | 2015.08.16 |
Webhacking.kr 24번 (0) | 2015.08.16 |
Webhacking.kr 23번 (0) | 2015.08.15 |
Webhacking.kr 22번 (0) | 2015.08.15 |