Summary
|
Challenge 28은 다음과 같습니다.
먼저 실제로 임의적인 파일인 "test.txt"라는 파일을 업로드해 봅니다. 업로드에 성공하면 다음과 같은 화면이 출력됩니다.
일단 무슨 의미인지는 이해가 가지 않지만, 업로드한 파일을 열어 보기 위해 "upload/test.txt"라는 경로로 이동을 해 보면, "404 Error" 페이지가 출력되는 것을 확인할 수 있습니다. 즉 본 문제에서는 실제로 파일을 업로드하는 것이 아니라 정답과 관련된 행위를 하면(?) 문제가 풀리도록 하드코딩을 적용해 놓은 것 같습니다.
이제 위의 hint에 나와 있듯이 ".htaccess"라는 것이 무엇인지 알아보도록 하겠습니다.
.htaccess는 하이퍼텍스트 액세스(hypertext access)의 준말로, 웹 서버 구성의 분산된 관리를 위해, 여러 웹 서버가 지원하는 디렉터리 수준의 설정 파일을 가리킨다. 참고] https://ko.wikipedia.org/wiki/.htaccess |
위와 같이 ".htaccess"는 디렉터리 단위로 웹을 설정할 수 있는 파일입니다. 그렇다면 ".htaccess"과 관련된 취약점에는 어떤것이 있을까요? hyunmini님 블로그에서 관련 내용을 참고할 수 있었습니다. (http://hyunmini.tistory.com/48)
즉 요약해 보면 다음과 같습니다.
".htaccess" 파일 안에 다음과 같은 내용을 삽입하여 취약점을 exploit 할 수 있습니다. 1) AddType application/x-httpd-php .txt .abc .xyz // ".txt", ".abc", ".xyz" 확장자를 가진 파일을 php파일로 실행 2) php_flag engine off // php 엔진을 off 시켜서 php 소스 열람 |
실제 모의해킹이라면 위의 1)과 같은 내용을 이용하여 WebShell파일을 업로드한 뒤 실행시키면 되겠지만, 본 문제에서는 실제 업로드가 적용되지 않으므로 보안을 우회하여 WebShell 파일을 업로드하는 것이 아니라 2)와 같이 "engine off"를 이용하여 php 소스를 열람한다면 $pw값을 볼 수 있을 것 같습니다.
BurpSuite를 이용하여 ".htaccess"라는 파일명을 "php_flag engine off"라는 내용으로 업로드하면 문제를 해결할 수 있습니다.
'WarGame > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] Challenge 57 :: Time-Based Blind SQL Injection (2) | 2015.12.29 |
---|---|
[webhacking.kr] Challenge 30 :: 파일 업로드 취약점 3 (.htaccess) (0) | 2015.12.25 |
[webhacking.kr] Challenge 22 :: Blind SQL Injection ( Rainbow Table Attack ) (1) | 2015.12.21 |
[webhacking.kr] Challenge 44 :: Command Injection 2 (0) | 2015.12.18 |
[webhacking.kr] Challenge 40 :: Blind SQL Injection 3 (0) | 2015.12.18 |