Rating:

처음에는 docx 파일을 업로드하면 그 내용을 보여주길래, 거기에 php 코드를 삽입해서 활용하는 또 다른 파일 업로드 취약점인 줄 알았습니다.

그런데 아무리 우회를 해도 (`<` 등으로) php 코드가 보일 뿐 실행이 안 되었습니다.

그래서 대체 뭐가 문젤까 고민을 많이 했습니다.

그래서 차분히 Hint를 살펴보았습니다. Hint에서는 새로운 담당자를 뽑는다는 메시지가 있길래 확인을 해보았더니 XML Developer가 있었습니다. (Indead v1에서는 XML Developer가 없었습니다)

그러다가 제 머릿속에 Word 파일 (.docx) 파일이 압축 파일의 형태와 같고 (PK로 시작함) word 파일 내의 글을 저장하는 부분은 document.xml 로 되어있다는 것이 떠올랐습니다.

그레서 XML을 통해 공격하는 방법을 구글링을 통해 찾았고, 그 방법은 바로 XXE Injection이었습니다.

블로그 글을 참고해 저는 documnet.xml 파일을 아래와 같이 재구성하였고,

```XML

]>
<change-log>
<text>&systemEntity;</text>;
</change-log>
```

파일을 다시 압축 후 확장자 변경을 한 뒤에 업로드를 하니

플래그가 나오는 것을 확인할 수 있었습니다.

플래그는 `flag{XML_is_ancestor_0f_every7hing_do_you_agree_?}` 였습니다.