power-girl0-0

[webhacking.kr - old] 41번 본문

War game/webhacking.kr

[webhacking.kr - old] 41번

power-girl0-0 2021. 7. 1. 11:05
728x90

주소 : https://webhacking.kr/old.php

 

Webhacking.kr

 

webhacking.kr


 [ 풀이 ] 

소스코드를 살펴보자.

위 소스코드를 살펴보면 . < > / 등을 필터링하고 있다.

또한 ./{$upload_dir}/{$fn}이라는 파일 경로를 복사하여, flag값을 쓰는 코드인 듯 하다.


그래서 $upload_dir에 대한 값을 알면, 왠지 flag값을 알 수 있을듯하다. 아마듀 @_@

어떻게 하지 고민하다가, 위쪽의 소스코드에 error에 대한 코드를 볼 수 있었다. 

엄,,, 에러에 관한 소스코드이긴 한데,,, 처음보는 함수(?)였다....ㅠ_ㅠ

서칭을 통해, 알아보니 에러를 출력해주는 코드이다.

또한, 에러가 출력되면 파일 경로까지 같이 출력시켜주는 에러인 듯 하다.


에러를 어떻게 발생시킬까? 고민하던 중 오버플로우가 생각이 났다.

일정 값보다 많은 값을 입력시켜서 에러 발생을 시도해보았다.

 

위 코드를 보면, name은 up이어야 조건문에 잡히지 않으므로 filename의 값의 크기를 크게 해서 전송하였다.

이는 아래와 같으며, burp suite툴을 이용하였다.


그 결과, 웹 페이지에서 에러메시지가 출력되는 것을 확인할 수 있었다.

오~_~ 찾았다!! ./{$upload_dir}이  ./4b0e87fef7b5e8ba83894970c9806042e5d6ec9a인 것을 알았다 ㅎ_ㅎ

이제 뒤에 경로인 /{fn}을 생성해서 해당 경로로 이동해보자.

에러 발생전 webshell.php파일을 업로드했으므로,  ./4b0e87fef7b5e8ba83894970c9806042e5d6ec9a뒤에 필터링되는 . 을 제외하고 webshellphp로 경로를 이동해보았다.

짜란~~ flag값을 얻을 수 있었다!

해당 flag값을 auth에 입력하여, 정답처리를 해보자 ^_^ 클리어 ~~

728x90

'War game > webhacking.kr' 카테고리의 다른 글

[webhacking.kr - old] 43번  (0) 2021.07.01
[webhacking.kr - old] 42번  (0) 2021.07.01
[webhacking.kr - old] 39번  (0) 2021.06.30
[webhacking.kr - old] 38번  (0) 2021.06.30
[webhacking.kr - old] 36번  (0) 2021.06.29
Comments