'Security' 카테고리의 다른 글
/etc/passwd 내용 노출 (0) | 2015.09.03 |
---|
/etc/passwd 내용 노출 (0) | 2015.09.03 |
---|
게임 포털 웹서비스 조직에서 개발자 지원 업무를 하고 있었을때 발생한 보안 이슈였고 원인과 해결 방법에 대해 정리해본다.
1. 현상
사이트내 갤러리 게시판이고, 이미지를 클릭하면 다운로드하는 형태.
특정 url의 response 데이터에 /etc/passwd 내용이 노출되었다,
ex) http://xxx.xxx.com/xxx/xxx?param=file%3A%2F%2F%2Fetc%2Fpasswd
2. 원인
원래는 http://xxxxxx 식의 이미지 경로가 들어와야 하는 하며, 내부 로직에서는 들어온 파라미터를 이용해
new Url("http://xxxx") 처리를 하도록 되어 있다. 문제는 파라미터로 들어온 file%3A%2F%2F%2Fetc%2Fpasswd
url decoding을 하면 file:///etc/passwd 값인데 Url클래스가 로컬 파일 접근이 가능하기 때문에
password 가 response 에 고스란히 노출되었던 것이었다.
3. 해결
기본적으로 XssFilter 적용이 되어 있어서 CRCF injection (http://www.acunetix.com/websitesecurity/crlf-injection/)
공격과 directory/path traversal 도 되지 않도록 아파치 설정이 되어 있어 노출만 될뿐 추가적인 피해는 없었다.
따라서 아래와 같은 방법으로 해결하도록 가이드하여 적용하였다.
1. 파일 확장자 체크 - 정해진 확장자만 허용 (.gif, .jpg, .png )
2. URL 클래스 사용시 새로운 객체 생성에서 url에 HTTP만 허용 (ftp, telnet, file 등은 사용하지 않도록)
추후에라도 파일 다운로드를 하는 웹서비스를 할 경우 까먹지 말고 유의하도록 해야겠다.
연관 이슈
sql injection, xss, parameter manipulation, buffer overflows, directory/path traversal etc.
서버와 클라이언트 간 메세지 전송 (0) | 2015.09.03 |
---|