WEB/설정 및 에러

[웹 보안취약점] Http Method (Apache, WEBAPP, IIS)

Diabol 2021. 4. 16. 15:47

OPTIONS 메소드를 통해 사용 가능한 Http Method 를 확인하고, PUT, DELETE, HEAD 같은 메소드를 사용하여 공격이 가능한 취약점이다. 문제되는 Http Method 를 제한하면 된다.

 

 

⊙ Apache

 

- http.conf

 

1) GET과 POST를 제외한 모든 메소드를 제한

<Directory />
	Options FollowSymLinks
	AllowOverride None
	<LimitExcept GET POST>
		Order allow,deny
		Deny from all
	</LimitExcept>
</Directory>

 

 

 

2) 접근 불가능한 디렉터리를 설정한 후 제한하고자 하는 메소드를 추가

<Directory "C:/[아파치 경로]/htdocs">
	<Limit OPTIONS PUT DELETE>
		deny from all
	</Limit>
</Directory>

 

 

 

⊙ WEBAPP

 

- WEB-INF/web.xml

<security-constraint>
	<web-resource-collection>
		<web-resource-name>Protected Resource</web-resource-name>
		<url-pattern>/*</url-pattern>
		<http-method>OPTIONS</http-method>
		<http-method>HEAD</http-method>
		<http-method>TRACE</http-method>
		<http-method>PUT</http-method>
		<http-method>DELETE</http-method>
		<http-method>PATCH</http-method>
		<http-method>SEARCH</http-method>
		<http-method>CONNECT</http-method>
		<http-method>PROPFIND</http-method>
		<http-method>PROPPATCH</http-method>
		<http-method>MKCOL</http-method>
		<http-method>COPY</http-method>
		<http-method>MOVE</http-method>
		<http-method>LOCK</http-method>
		<http-method>UNLOCK</http-method>
	</web-resource-collection>
	<auth-constraint>
		<role-name></role-name>
	</auth-constraint>
</security-constraint>

 

 

 

⊙ IIS 10

 

1) web.config

 

 

▼ 코드 복사

더보기
<security>
	<requestFiltering>
		<verbs>
			<add verb="HEAD" allowed="false" />
			<add verb="DELETE" allowed="false" />
			<add verb="PUT" allowed="false" />
			<add verb="OPTIONS" allowed="false" />
			<add verb="TRACE" allowed="false" />
		</verbs>
	</requestFiltering>
</security>

 

 

 

2) IIS 관리자 > 요청 필터링 > HTTP 동사

 

 

동사에 메소드를 입력하면 끝이다.

 

1 2 둘 중 하나만 해도 다른 한 곳에 자동으로 설정된다.

예) 1에서 설정하면 2에서 자동으로 등록되어있음

 

 

 

+) 버전은 모르겠는 IIS 설정

 

- 레지스트리 편집

 

1. 레지스트리 편집기(Regedt32.exe) 실행

2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters 로 이동

3. 편집 메뉴 - 값 추가

값 이름 : DisableWebDAV

데이터 형식 : DWORD

값 데이터 : 1