본문 바로가기

웹해킹/webhacking.kr

webhacking.kr old 28번 문제풀이(Writeup) htaccess 취약점 설명

반응형

webhacking.kr old 28번 문제풀이(Writeup)

old 28번 문제풀이 1

문제를 들어가면 위와 같이 출력된다. 이번에도 파일 업로드 취약점인 것 같다. Mission으로 ./upload/rGshn9SzBErB/flag.php 를 읽으면 된다고 한다. 점수만 보면 난이도 있는 문제인데, 뭔가 쉬울 것 같다.

 

 

 

 

old 28번 문제풀이 2

코드엔 별다른 힌트가 없기 때문에 바로 여러가지 시도를 해봤다.  일단 Kali Linux에 있는 웹쉘 몇 가지를 올려봤다. php 파일이 올라가는 걸 보면 php에 대한 필터링이 없는 것 같은데 실행되지 않는다.

 

몇 번 웹쉘을 올려도 작동이 안되는 것을 보고 웹쉘을 올리는 문제가 아니라는 생각이 들었다. 그래서 구글링을 하다 보니 php 관리자 권한 인증 우회를 위해 ".htaccess" 확장자를 알게 되었다.

 

 


.htaccess 란?

Apache 웹 서버의 디렉터리를 설정하는 기본 파일 중 하나이다. 따라서 상위 디렉터리에서 위치하며, 하위 디렉터리에 영향을 준다.

 

이때 맨 앞 .은 숨긴 파일이란 뜻이다.  따라서 .htaccess는 Apache가 기능을 사용 가능 또는 사용 불가능으로 설정하거나 특정 조건이 충족될 때 특정 작업을 실행하기 위한 매개 변수를 설정합니다.


   1) PHP Code lack

   Apache  설정 파일이다 보니, php_flag engine off를 하면 php 엔진이 종료된다.


   2) Redirection Upload

   특정 URL에 접근을 하면 다른 URL로 접속이 되는 형식으로 임의의 피싱 사이트로 리다이렉션 시켜서 불법 정보수집에       이용된다.

   RewriteEngine On

   RewriteCond %{HTTP_HOST}^(kangsecu.tistory.com)

  RewriteRule (.*) http://google.co.kr/$1

 

   3) 웹쉘로 이용 가능(php 확장자 우회)


대응방안

AllowOverride 속성이 None일 때 .htacces를 사용할 수 없다. 따라서 가급적 None으로 해두는 것이 좋다.

 

 


다시 문제를 풀어보자.

old 28번 문제풀이 3

php_flag engine off를 입력해서 .htaccess파일로 만들어서 웹에 업로드했다. flag가 출력되었다.

728x90