webhacking.kr old 28번 문제풀이(Writeup)
문제를 들어가면 위와 같이 출력된다. 이번에도 파일 업로드 취약점인 것 같다. Mission으로 ./upload/rGshn9SzBErB/flag.php 를 읽으면 된다고 한다. 점수만 보면 난이도 있는 문제인데, 뭔가 쉬울 것 같다.
코드엔 별다른 힌트가 없기 때문에 바로 여러가지 시도를 해봤다. 일단 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으로 해두는 것이 좋다.
다시 문제를 풀어보자.
php_flag engine off를 입력해서 .htaccess파일로 만들어서 웹에 업로드했다. flag가 출력되었다.
'웹해킹 > webhacking.kr' 카테고리의 다른 글
webhacking.kr old 40번 문제풀이(Writeup) (0) | 2022.10.23 |
---|---|
webhacking.kr old 29번 문제풀이(Writeup) 파일업로드를 통한 SQL Injection (0) | 2022.10.22 |
webhacking.kr old 24번 문제풀이(Writeup) (0) | 2022.10.20 |
webhacking.kr old 37번 문제풀이(Writeup) (0) | 2022.10.19 |
webhacking.kr old 36번 문제풀이(Writeup) swap 파일 문제 (0) | 2022.10.18 |