[그림 01] level25 시작


level25를 시작하니 Directory listing 취약점처럼 보이는 것이 있습니다.

혹시 저 text 창이 webshell은 아니게찌이~?

......아닙니다. 그냥 text 영역입니다.


우리는 이제 URL을 살펴볼 필요가 있습니다.

혹시 GET 방식으로 뭔가 넘기는 게 있지 않을까 살펴보는 것이죠.


[그림 02] GET으로 넘기는 값 확인


GET 방식으로 ?file=hello를 넘기는 것을 확인할 수 있습니다.

현재 리스팅 된 파일을 보면 hello.txt라는 것이 보입니다. 그러나 file에서는 hello만 입력되었다는 것은 .txt가 뒤에 붙는다는 것을 말하는 것 같습니다.

그렇다면 우리는 hello만 file의 값으로 넘기면 뒤에 .txt를 붙여주게 된다는 힌트를 얻었습니다.

우리는 뒤에 있는 .txt를 소용없도록 만들어야 합니다.


문자열이라는 개념으로 다시 돌아가보면, 문자열의 끝은 NULL값으로 구분한다는 것을 알 수 있습니다.

그렇다면 우리는 '우리가 넘겨준 값이 진짜고 뒤에 붙는 .txt는 가짜입니다.'라는 것을 컴퓨터에게 알려줘야 합니다.

그렇다면 뒤에 hello.txt가 되기 전에 우리가 의도적으로 hello.txt를 만들어봅시다.


[그림 03] hello.txt%00 만들기


hello.txt%00은 hello.txt 뒤에 NULL도 함께 보내준다는 의미입니다.

실험해본 결과(with Fiddler 4) URL이 다시 ?file=hello로 바뀌지 않는 것을 보니 %00값이 소용이 있는 것으로 보입니다.

이제 우리는 password.php를 봐봐야겠습니다. 허허



[그림 04] 해결



'WARGAMES > webhacking.kr - old' 카테고리의 다른 글

Webhacking.kr_No13(1000) - old  (0) 2019.12.15
Webhacking.kr_No.28(500) - old  (0) 2019.10.25
Webhacking.kr_No.27(150) - old  (0) 2019.10.25
Webhacking.kr_No.26(100) - old  (0) 2019.10.24
Webhacking.kr_No.24(100) - old  (0) 2016.06.28
Webhacking.kr_No.23(200) - old  (0) 2016.06.28
Webhacking.kr_No.20(200) - old  (0) 2016.06.28
Webhacking.kr_No.18(100) - old  (0) 2016.06.28

+ Recent posts