공부

XML External Entity (XXE) Injection

푸쥬 ! 2022. 2. 26. 01:04
반응형

XML 코드를 입력받아서 파싱할 때 발생하는 취약점.

테스트 코드 작성

 

1. XML 파싱코드

file_get_contents 함수를 통해 xml.txt 파일을 불러와 simplexml_import 에 있는 코드를 가져와서 파싱.

파싱은 <user> 와 <pass> 에서 하는 것을 확인.

 

 

2. xml.txt 내용

파싱되는 xml entity 가 <user>, <pass>.

entity 값을 함수로 돌려 로컬 파일 읽기 등의 공격이 가능.

현재는 /etc/passwd 파일을 읽는 코드.

지금은 테스트라 파일 형태지만, 파라미터 형태(POST)로 넘어올 경우가 존재할 수 있음.

이때 출력되는 entity 를 찾아 공격코드를 삽입.

 

 

3. 출력 결과

 

728x90