HTTP의 메소드중 하나인 GET 과 POST
메소드는 서버가 요청을 수행하기 위해 해야할 행동을 표시하는 용도로 보여주는데
웹공격 중에 GET 과 POST로 수행되는 공격이 많으므로 두 메소드의 특징과 차이점부터 알아보겠습니다.
GET
서버로부터 정보를 조회하기 위해 설계된 메소드. 데이터를 읽거나 검색할 때 사용된다.
그리고 요청을 전송할 때 필요한 데이터를 Body에 담지않고 쿼리스트링을 통해 전송한다.
쿼리스트링이란 URL 끝에 ?를 필두로 오는 요청 파라미터이다. 예를들어
www.phpMyAdmin.php?name1=value1&name2=value2
이런식으로 ?뒤에 붙는 요청들이 쿼리스트링이다. 데이터를 읽고 정보를 조회할 때만 사용하는 메소드이므로 웹서버가 변경될 위험은 없다.
그러므로 공격자가 GET방식으로 공격하면 장비에서 탐지된 데이터를 특별한 설정없이 대상 웹서버에 적용시켜 볼 수도 있고 응답도 동일하게 나오므로 해당 공격에 취약한 페이지 여부를 바로 판단해 볼 수도 있다.
HTTP 응답 코드는 GET요청이 성공적일경우 XML or JSON과 함께 200OK 를 반환
에러가 발생하면 주로 404 Not fount or 400 Bad request를 반환한다.
POST
주로 새로운 리소스를 생성하거나 변경하기 위해 설계된 메소드.
GET과 달리 필요한 데이터를 HTTP메세지의 Body에 담아서 전송한다.
비교적 대용량의 데이터를 전송할 수 있고 내용이 눈에 보이지 않아 GET보다는 보안적이라고 할 수 있지만
Tool로 쉽게 확인할 수 있기 때문에 필요한 경우 암호화 전송도 고민해 봐야한다.
HTTP전송코드는 성공적으로 생성이 완료되면 201Created를 반환한다.
서버를 변경할 수 있는 위험을 가지고 있어 공격자가 POST 방식으로 업로드를 시도했다면 GET 방식으로 그대로 시도해 해당 파일이 있는지 요청해 보기도 한다.
'보안 > 보안관제 공격이벤트 정리' 카테고리의 다른 글
SIEM (0) | 2022.01.26 |
---|---|
WebShell 공격 (0) | 2022.01.17 |
비허용 Method (0) | 2022.01.17 |
ZmEu Scanner (0) | 2022.01.17 |
SQL Injection - URL Encoding (0) | 2022.01.14 |