웹 공부

SSRF(Server Side Request Forgery)

insetto:) 2023. 11. 22. 13:53
반응형

SSRF(Server Side Request Forgery)

  • 서버 측에서 위조된 HTTP 요청을 발생시켜 직접적인 접근이 제한된 서버 내부 자원에 접근하여 외부로 데이터 유출 및 오동작을 유발하는 공격
  • 백엔드 서버단에서 요청을 발생시켜 내부시스템에 접근하거나 외부로 데이터를 유출할 수 있는 공격 방법

Why?

서비스 기능에 따라서 proxy 서버와 유사하게 서버가 웹 요청을 대신 수행 해야하는 경우가 있는데, 외부 Endpoint에 접근할 수 있는 URL에 관련된 정보를 받아오는 경우 외부에서 사용자가 이를 조작하여 개발자가 의도하지 않은 도메인으로 '웹 요청'을 발생시킬 수 있다.

공격 방법 탐지

보통 이미지를 캡쳐하거나 웹 사이트의 정보를 읽어오는 기능에서 자주 발생, 예상하지 못한 기능중에 다른 서비스로 요청을 보내는 경우에도 발생한다. 이를 쉽게 찾기 위해 Callback성 도구(Burpsuite collaborator, ZAP OAST 등)를 활용해서 OOB(Out-of-Bound)와 유사하게 Callback을 받을 도메인을 파라미터, 헤더 등으로 요청하여 서버가 전송하는 요청을 탐지하는 방법이 가장 빠르고 확실함

간혹 인프라 구조에 따라서 외부로 요청이 발생하지 못할 수 있는데, 이러한 경우 localhost, 사설 IP, 사설 도메인(서브 도메인 스캔 후 IP 비교) 등을 호출하면서 접근할 수 있는 지 체크

익스

외/내부로 접점이 확인되면 실제로 영향력을 만들어야 하는데, 보통 인프라에서 사용되는 주요 시스템 등의 사설 도메인/IP 로 접근해서 response를 통해 내부 정보를 유출하거나, SSRF의 특성 상 * DMZ(DeMilitarized Zone)나 그 뒤에서 동작한다는 점을 이용, ALC 등 보안 정책 우회 가능 or protocol을 컨트롤할 수 있는 경우 내부 파일에 대한 접근 포인트 존재

DMZ(DeMilitarized Zone) : 외부 네트워크 서비스를 제공하면서 내부 네트워크를 보호하는 서브넷, 즉 외부에 오픈된 서버영역

익스 - Public Cloud Service

AWS, GCP, AZure, Digital Ocean 등 Public Cloud 를 사용하는 경우 Metadata API로 접근해서 Instance에 대한 정보를 얻거나 중요한 키 값을 얻어 시스템을 탈취할 수 있는 리스크를 만들 수 있음

Metadata URLs (AWS)

 

Metadata URLs (GCP)

Metadata URLs (Digital Ocean)

이외에도 굉장히 많은 Public Cloud Service에 대한 Metadata API가 있다.

Basic bypass

![[Pasted image 20230925143609.png]]

Bypass with @

보통 Era of SSRF로 많이 알려진 방법. @를 이용하여 실제 Host와 검증에서 확인하는 Host를 다르게 분리시켜 공격자가 의도한 도메인으로 접근하도록 유도하는 방법.

Bypass with Special chars

Bypass with CNAME and A Record

SSRF 대상이 외부 요청이 가능한 경우 URL을 공격자가 의도한 도메인으로 요청하는데, 해당 도메인의 IP를 내부망으로 지정하여 접근할 수 있는 방법이 있음.

Bypass with AAAA Record(IPv6)

SSRF에 대한 대응 방법 중 가장 확실한게 Endpoint의 실제 IP를 체크하는 방법. 다만 대부분 Denie list 기반(이는 사설대역이 명확하게 구분되기 때문)의 보호 로직을 사용하는데, IPv6 주소를 이용, 우회 가능. 그리고 도메인 서비스에서 IPv6 주소는 AAAA Record로 매핑

Bypass with Redirect

SSRF 대상이 외부 요청이 가능한 경우 URL을 공격자가 의도한 사이트로 요청한 후 해당 페이지에서 301, 302, 307, 308 등을 이용해 HTTP Redirect를 통해 내부로도 접근을 시도할 수 있다.

DNS Rebinding

DNS Rebinding을 이용하면 2개의 IP가 공존하는 도메인을 이용해서 Host validation을 우회 가능

 

 

반응형

'웹 공부' 카테고리의 다른 글

Prototype Pollution  (0) 2023.11.22
Express.js  (1) 2023.11.22
CSRF  (0) 2023.11.13
Open Redirect (번외로 Docker)  (1) 2023.11.13
RFI/LFI  (0) 2023.11.13