일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 2012 사진공모전
- 자바스크립트
- 스팸글 차단
- 중복필드
- 일괄처리
- 배경이 가려진 레이어 팝업
- 청보리밭
- 자동 로봇 글등록
- column명비교
- fckeditor
- MARGIN
- 스크롤 이동
- 클라우드
- PADDING
- 퀵메뉴
- POST 전송
- @tistory.com
- addbatch
- 고창
- html5
- 치환
- apache tomcat 연동 보안
- XSS 차단
- 다음메일
- CSS
- WEB-INF 노출
- 암호화&복호화
- Java
- 네이버 지도API
- 비밀번호 유효성
Archives
- Today
- Total
그곰의 생활
[스크랩]WebDEV 처리방법 본문
이과 같은 조건이라면 PUT혹은 DELETE 메소드를 이용하여 콘텐츠를 생성하거나 삭제할 수 있다.
<PUT 메소드>
-----------------------------------------------------------------------------
HTTP 메소드 전송형태 설 명
-----------------------------------------------------------------------------
PUT PUT [request-uri] HTTP/1.1\r\n POST 와 유사한 전송 구조를
Host:[HOstname] 혹은 [IP] \r\n 가지기 때문에 헤더 이외에 메시지(데이터)가
Content-Length:[Length in Bytes] \r\n 함꼐 전송된다. 대개 원격지 서버에 지정한
Content-Type:[Content Type] \r\n 콘텐츠를 저장하기 위해 사용되며 홈페이지편조에
\r\n 악용된다.
[ 데이터 ]
-----------------------------------------------------------------------------
예를 들어 PUT 메소드를 이용하여 /upload/Defacement.html 파일을 삽입(호메이지 변조)하는 경우
헤더에는 파일 생성 위치를 넣고, 메시지(Body)에는 파일 내용을 추가한다.
(전송 방식은 POST와 같다.)
----------------------------------------------------------------------------
PUT /upload/Defacement.html HTTP/1.1
If-Modified-Since : Mon, 22 May 1970 12:00:00 GMT
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Win32)
Host: findjob.co.kr
Content-Length : 551
Connection : Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDQAADCQCS=OPLAHCMCOPBAEELAHOCJHHB
<html>
생략...
</html>
-------------------------------------------------------------------------------
파로소를 이용해서 패킷을 잡아다가 변조해도되고 소켓 프로그램으로 HTTP 에 PUT 메소드 형식에
맞게 상대방 서버에 보내면 원하는 파일변조 및 생성이 가능하다고 한다.
====================================================================
[ 해킹 로그 ]
PUT 메소드 악용은 특별한 고급 기술을 필요로 하지 않기 때문에 자주 악용되고 있다.
공격자는 먼저 WebDAV 운영 여부를 확인하기 위해 'PROPFIND /' 를 전송한다. 이때 응답 코드 207번이
수신되면 WebDAV 서비스 사용을 의미하기 때문에 파일 삽입(PUT /echo.html)을 즉시 요청한다.
======== PUT 악용 로그 샘플(1) ========
2005-01-09 23:43:XX XXXX - 222.222.222.222 PROPFIND / - 207
Microsoft+Data+Access_Internet+Publishing+Provider+DAV
2005-01-09 23:43:XX XXXX - 222.222.222.222 PUT /echo.htm - 201
Microsoft+Data+Access_Internet+Publishing+Provider+DAV
원격지에 파일이 생성되었을 경우 응답 코드는 201(Created)번이 수신된다.
====================================================================
[ 보호 방법 ]
대응책은 IIS(ASP), 아파치(PHP), JSP 관점에서 시스템 설정 변경을 통해 원하는 메소드를 통제할 수
있으므로 아래의 내용을 참고하기 바란다.
======== IIS ========
WebDAV는 암호화나 인증이 근본적으로 취약한 원격 관리 기능이므로 해당 서비스 중지를 권고한다.
(간단한 레지스터리 편집으로 서비스를 제거할 수 있다.)
레지스트리 편집기(regedit)를 열고 다음의 위치에 새로운 레지스트리 값을 생성한다.
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters
::DisableWebDAV 내용
값 이름 : DisableWebDAV
데이터 형식 : DWORD
값 데이터 : 1
======== 아파치 ========
아파치는 기본적으로 많은 메소드를 제공하므로 필요한 메소드만을 허용할 수 있다. 아래 http.conf
파일 내용은 모든 디렉터리에 대해 GET 과 POST 메소드만 허용하고, 이회의 메소드는 제한하는 방법이다.
----------
<Directory />
<LimitExcept GET POST>
Order allow, deny
Deny from all
</LimitExcept>
</Directory>
======== JSP ========
web.xml 설정을 통해 정의한 웹 콘텐츠에 대해 어떤 메소드를 허용할지를 결정할 수 있다.
첫 번재 샘플은 "PARTNER" role을 가진 사용자에게 /acme/wholesale/ 디렉터리 하위 리소스에 대해
GET 및 POST 메소드 사용을 허용하는 정책이다.
----- 샘플 1 -----
<security-constraint>
<web-resource-collection>
<web-resource-name>wholesale</web-resource-name>
<url-pattern>/acme/wholesale/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>PARTNER</role-name>
</auth-constrain>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
두 번째 샘플은 manager 에게만 PUT, DELETE 메소드 사용을 제한하는 정책이다.
----- 샘플 2 -----
<security-constraint>
<web-resource-collection>
<web-resource-name>method block</web-resource-name>
<url-pattern>*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name>
</auth-constrain>
</security-constraint>
-------------------
<web-resource-name> method block </web-resource-name>
임의의 이름을 줄 수 있다.
<url-pattern>/*</url-pattern>
모든 페이지를 의미한다.
<http-method>DELETE</http-method>
차단할 메소드를 등록한다.
<auth-constraint>
인증 사용자를 등록한다.
'Server System > WebApp & WAS Config' 카테고리의 다른 글
[스크랩]WebDEV Method (GET, POST, HEAD, PUT, DELETE, TRACE) 제한하기 (0) | 2011.11.17 |
---|---|
[보안]Apache & Tomcat 연동시 보안 사항 (0) | 2011.10.04 |
Comments