출처: 이글루시큐리티
불필요한 HTTP 메소드
보통 웹 취약점 진단 진행 시 "불필요한 HTTP 메소드" 항목에 대해서도 점검할 것이다.
OPTIONS, TRACE, PUT, DELETE 등의 메소드를 사용하는지 여부를 확인한다.
해당 항목 점검 시 주의할만한 case들을 기록해두고자 포스팅을 하게 되었다.
✔ CASE 1. 불필요한 메소드인 PUT, DELETE 를 사용하는 경우
웹 진단 도중.. PUT 또는 DELETE 메소드를 사용하는 것을 발견!
우선 보고서에 적기 보다는, REST API 사용 여부를 판단해보자.
REST API
· REST(REpresentational State Transfer): 자원을 이름으로 구분하여 자원의 상태를 주고받는 모든 것. URI로 자원을 구분하고 해당 자원에 CRUD Operation을 적용한다.
· REST API: REST 아키텍처 스타일을 준수하는 API
· CRUD Operation: Create, Read, Update, Delete
> GET 요청으로 레코드 검색
> POST 요청으로 레코드 작성
> PUT 요청으로 레코드 업데이트
> DELETE 요청으로 레코드 삭제
HTTP request의 URI에 DELETE와 같이 삭제 행위에 대한 표현이 나오면 REST 규칙을 만족하지 않은 것.
삭제 기능은 DELETE 메소드 통해 요청되어야 함.
URI | REST 규칙 만족 여부 | |
GET /members/delete/1 | X | |
DELETE /members/1 | O |
REST에 대해 잘 정리된 티스토리 블로그(링크)
✔ CASE 2. OPTIONS의 결과에 PUT, DELETE 메소드가 존재하나, 사용 불가능
OPTIONS를 날려보니 불필요한 메소드들이 존재한다. 그런데 막상 PUT,DELETE 메소드 사용 시 403 ! 뭐하자는 걸까?이건 이글루시큐리티 홈페이지에 자세한 설명이 나와있다. (링크)
간단히 말하자면.. 웹 서버와 보안장비 간 보안정책이 다를 경우 이러한 현상을 확인할 수 있다. OPTIONS 메소드는 WAF에 의해 필터링되지 않아 웹 서버로 요청이 전달되어 정상적으로 응답. PUT 및 DELETE 메소드는 WAF의 보안정책에 의해 필터링되어 403 Forbidden이 보여진 것.
'보안 > 웹·모바일' 카테고리의 다른 글
[Android] owasp-crackme Uncheckable #1 (0) | 2023.02.22 |
---|---|
[Android] FridaLab 1~8 풀이/노트 (2) | 2023.02.21 |
[Android] frida 셋팅 도움말 (frida-server, frida-tools) (0) | 2022.11.22 |
[iOS] Native Code Exploit Prevention (2) | 2022.11.18 |
[Android] 루팅 탐지 우회 도움말 log (0) | 2022.11.18 |