HTTP Status code (HTTP 상태 코드)는 HTTP 요청이 성공했는지 실패했는지를 서버에서 알려주는 코드다. 이 코드들은 크게는 5가지의 클래스로 구분되며, 각 상세 코드를 통해 클라이언트의 요청에 대해 서버가 어떠한 동작을 했는 지에 대해 나타낸다.

  • 1xx (정보): 요청을 받았으며 프로세스를 계속한다
  • 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다
  • 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
  • 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
  • 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다.

status_code 필터를 활용한 HTTP 상태 코드 별 페이지 찾기

Criminal IP Asset Search (https://www.criminalip.io/asset) Status_code 필터를 사용하면, 특정 코드를 반환하고 있는 페이지들을 검색할 수 있다. 가장 흔하게 볼 수 있는 404 Not found (서버가 요청한 페이지를 찾을 수 없음) 코드를 검색한 결과, 3 5천 건이 넘는 페이지를 확인할 수 있다

[Criminal IP Youtube – 특정 HTTP 상태 코드 검색으로 웹 페이지를 찾는 방법 ]

“status_code:404”

status_code:404 검색 결과

status_code:404 검색 결과

여기에 키워드로 도메인 주소를 추가하거나, as_name 필터를 추가하여, 특정 사이트의 오류 페이지로 범위를 좁혀서 검색할 수도 있다.

“Google.com, status_code:404”

Google.com, status_code:404 검색 결과

Google.com, status_code:404 검색 결과

status_code 필터를 활용한 보안 취약점 찾기

403 Fobidden (권한 거부) 코드는 클라이언트의 인증 정보에 상관없이 페이지에 대한 접근을 거부한다는 것을 나타내는 오류로, 이는 해당 서버에 중요한 정보를 포함하고 있다는 것을 우회적으로 드러내는 표시가 된다. 이러한 HTTP 상태 코드는 그 코드 자체로 보안의 취약점이 될 수 있으므로 최근에는 자세한 오류 정보를 노출시키는 대신 통합 에러 페이지를 보여주는 식의 보안 정책이 적용되고 있다

“as_name: salesforce.com, inc. status_code:403”

Salesforce.com의 403 코드 페이지 검색 결과

Salesforce.com의 403 코드 페이지 검색 결과

통합 에러 페이지 화면

통합 에러 페이지 화면

이 외에도 500번대 코드는 서버가 요청사항을 수행할 수 없을 경우에 보여지는데, 에러의 원인이 노출되는 경우에는 보안 사고가 발생할 수 있다.

status_code:500 검색 결과로 확인 가능한, 에러 원인이 그대로 노출되어 있는 500 코드 오류 페이지

status_code:500 검색 결과로 확인 가능한, 에러 원인이 그대로 노출되어 있는 500 코드 오류 페이지

위의 500 코드를 반환하는 페이지는 해당 페이지의 에러 원인과 함께 어떤 언어와 서버가 쓰이는 지도 노출이 되고 있다. 여기에 노출된 정보를 통해 이미 알려진 해당 서버의 취약점이 공격받을 수 있는 여지가 있으므로 조치가 필요하다.

참고로, Asset Search 검색 결과의 오른쪽 통계 혹은 Elementry Analysis 메뉴를 통해 해당 코드를 가장 많이 리턴하는 Product Service, AS Name 등을 확인할 수 있다.


데이터 출처 : Criminal IP (https://www.criminalip.io)

관련 글 :