웹 해킹
모의해킹의 열 번째 XXE 공격
jhyuxxk
2021. 3. 22. 13:54
XXE (XML eXternal Entity, XML 외부 엔티티) 취약점은 XML 타입의 데이터가 웹 요청을 통해 전송되고, 서버에서 XML 외부 엔티티를 처리할 수 있도록 설정된 경우 나타날 수 있다.
사용자가 웹 애플리케이션으로 전달되는 XML 데이터를 직접 업로드하거나 수정할 수 있는 경우, 공격자는 외부 엔티티를 참조하는 XML 데이터를 전송하여 파일과 같은 서버 내부의 정보를 탈취하거나 서비스 거부 공격, SSRF 등의 공격을 수행할 수 있다.
XXE 공격 실습
위 버튼을 누르면 사용자의 시크릿이 버튼에 표시된 문자열로 초기화되는 기능이 구현되어 있다.
위 그림과 같이 Content-Type 헤더가 text/xml 타입으로 설정되어 있고, XML 데이터가 전송되고 있다.
앞에 bee는 로그인 태그안에 사용된 문자열인 것을 알 수 있다.
<login> 태그의 값으로 외부 엔티티를 참조함으로써, /etc/passwd 파일의 내용을 알아보겠다.
XXE 공격 대응
외부 엔티티 참조 기능이 필요하지 않은 경우 DTDs나 외부 엔티티 관련 설정을 비활성화한다.
혹은 웹 방화벽 등의 장비를 이용하여 차단한다.
위 글은 화이트 해커를 위한 웹 해킹의 기술을 참고했습니다.