본문 바로가기
Portswigger/XXE

Portswigger - Exploiting XXE using external entities to retrieve files solution

by jh117jh 2023. 8. 11.
728x90

이번 문제는 XXE(XML eXternal Entity) 즉, XML 외부 엔티티를 이용한 공격을 하면 된다.

문제에서는 재고확인 기능이 있는데 이 기능을 이용하여 XML 외부 엔티티를 삽입해 /etc/passwd 파일을 불러오라고 나와있다.

XML과 XEE에 관한 내용은 https://jh-hack.tistory.com/78에서 확인 할 수 있다.

 

[개념정리] XXE 란?

대표적이 웹 해킹 기법이라 하면 SQL injection, XSS, CSRF, XXE 등등이 있다. 이중 XXE는 무엇일까? XXE는 XML External Entity의 약자이다. 먼저 XXE를 알아보기전에 XML이 무엇인지 알아야 한다. XML이란? XML이란

jh-hack.tistory.com

 

우선 홈페이지의 재고확인 버튼을 눌러 burp suite로 패킷을 탈취해 봤다.

제품 id, 상점 id 같은 정보들을 xml을 전송하여 서버로부터 데이터를 가져오는 것을 알 수 있다.

 

여기에 <!DOCTYPE jh [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> 외부 엔티티를 선언해주고 

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

/etc/passwd 파일이 읽어지는 걸 볼 수 있다.

728x90