취약점 유형
- 불필요한 메소드 지원: GET, POST 메소드 이외의 PUT, DELETE, COPY, MOVE 등의 불필요한 메소드를 허용 할 경우 공격자가 이를 이용하여 웹 서버에 파일을 생성하거나 삭제, 수정이 가능한 취약점
해결방안
1) tomcat web.xml에 항목을 추가
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted methods</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
<http-method>COPY</http-method>
</web-resource-collection>
<auth-constraint />
</security-constraint>
2) apache 웹 서버에 메소드 제한 설정 추가
# apache 2.4 ver
<Location "/">
AllowMethods GET POST HEAD
</Location>
결과
mod_rewrite 모듈로 인해 403 > 400 오류로 포워딩
SecRule REQBODY_ERROR "!@eq 0" \
"id:'200001', phase:2,t:none,log,deny,status:400,
msg:'Failed to parse request body.',logdata:'%{reqbody_error_msg}',severity:2"