[webhacking.kr] 28번 문제 풀이[Apache]

최대 1 분 소요

💡 Webhacking.kr challenge(old) 28번 문제에 대한 풀이입니다.

문제

문제 화면

image

해당 경로의 flag.php 파일을 읽으면 됩니다.

문제 풀이

php 파일은 기본적으로 서버스크립트 파일이기 때문에 접근을 하면 php 문법에 따라서 실행된 결과를 보여줍니다. 문제에서는 해당 경로로 접근을 하면 다음과 같이 아무 것도 출력이 되지 않습니다.

image

Apache에는 모든 웹서버의 폴더들의 설정값이 들어있는 httpd.conf 파일과 php.ini 등의 설정 파일이 있습니다. 해당 파일의 설정을 바꾸면 웹서버의 전체 설정이 바뀌게 되는데, 특정 폴더의 설정값만 개별로 바꿀 수 있는 기능을 제공합니다.

예를 들어 파일을 업로드 하는 폴더에 있는 php 파일들은 실행되지 않게 하고 싶다면, 업로드 되는 폴더에 .htaccess파일을 생성하고, 해당 파일에 다음과 같은 설정값을 적어주면 그 폴더 하위에서는 httpd.conf 나 php.ini 같은 전체설정파일의 설정보다 우선하여 .htaccess파일의 설정 값을 따르게 됩니다.

  php_flag engine off

따라서 본 문제에서는 .htaccess 파일에 설정 값을 위와 같이 적어 준 뒤, 파일을 업로드 하여 php 파일이 실행되지 않도록 하게 하면 됩니다.

image

위와 같이 업로드 한 뒤, flag.php 경로로 들어가보면 다음과 같이 php 파일이 실행되지 않고 파일의 내용이 출력되게 됩니다.

image

댓글남기기