저장소
[webhacking.kr] 25번 풀이 본문
Webhacking.kr
Index Welcome Stranger! Chatting Notice(en) [2021-04-16] Score of old challenges has been adjusted to 1/10. For a while now, new challenges will be added "without" notice. [2020-08-12] Replace chat feature with Discord. Please do not cause inconvenience to
webhacking.kr
25번은 php와 관련된 문제다.
리눅스에서 ls 명령어를 사용한 것 같은 화면이 보인다. URL도 file=hello가 인자로 전달되고 있다.
file의 값을 flag, index 등으로 바꾸면 아래에 출력되는 메시지도 바뀐다. flag를 입력하니 FLAG is in the code라는 메시지가 출력된다. 하지만 페이지 소스를 확인해도 php 코드를 확인할 수 없었다.
이것저것 시도해보다가 결국 구글링으로 힌트를 얻었다.
php://filter라는 php wrapper를 사용하면 간단하게 풀 수 있는 문제라고 한다.
https://www.php.net/manual/en/wrappers.php
php://filter는 위와 같이 사용할 수 있다.
여기에서 read=somefilter의 somefilter는 base64로 인코딩해주는 convert.base64-encode를 사용해준다.
우리가 읽고 싶은 php 파일은 flag 이므로 resource=flag로 입력한다.
http://webhacking.kr:10001/?file=php://filter/read=convert.base64-encode/resource=flag
위와 같이 URL을 입력해주면 된다.
그러면 출력이 바뀐 것을 볼 수 있다.
base64 decode 툴을 사용해서 디코딩해주자.
Base64 Decode - Online Tool
Base64 decode Decode base64 string from 'YmFzZTY0IGRlY29kZXI=' to 'base64 decoder'
www.base64decode.net
그러면 FLAG의 값이 나온다.
문제가 풀렸다.
'IT > 웹 해킹' 카테고리의 다른 글
[webhacking.kr] 26번 풀이 (0) | 2021.08.30 |
---|---|
[webhacking.kr] 10번 풀이 (0) | 2021.08.30 |
[webhacking.kr] 24번 풀이 (0) | 2021.08.27 |
[webhacking.kr] 12번 풀이 (0) | 2021.08.23 |
[webhacking.kr] 39번 풀이 (0) | 2021.08.23 |