[WEB HACKING] OOXML XXE with Burp Suite(OOXML XXE 관련 Burp suite Extension)

어제 쓸만한 Burp Extension을 찾았습니다 :)

PortSwigger 공식 Github엔 올라와있지만 아직 BApp Store엔 안올라온 OOXML XXE 관련 확장 기능입니다.

이야기에 앞서 해당 툴을 만든 사람은 “maxence-schmitt” 입니다. PortSwigger쪽에서 공식적으로 지원하려하는 것 같네요. (https://github.com/maxence-schmitt/OfficeOpenXMLEditor)

설치 과정에서 발생하는 코드는 PortSwigger 쪽 github 링크로 작성하겠습니다.

What is OOXML XXE?

먼저 OOXML XXE 취약점에 대해 간략히 설명드리면.. OOXML(Office Open XML)을 사용하는 파일에 XXE 구문을 삽입해서 OOXML을 파싱하는 구간에서 XXE 구문이 실행되도록 하는 공격입니다. docx, pptx 등 office 파일은 PK 헤더를 가지며 압축 포맷으로 생성됩니다. 그래서 unzip 으로 까보면..

#> unzip asample.pptx Archive: asample.pptx inflating: [Content_Types].xml
inflating: _rels/.rels
inflating: ppt/slides/_rels/slide1.xml.rels inflating: ppt/_rels/presentation.xml.rels inflating: ppt/presentation.xml

과 같이 여러가지 파일이 보이고 이중에는 XML 파일도 존재합니다. 바로 저 부분에 XXE 구문을 삽입하는 거죠.

관련하여 올해 5월 작성해둔 포스팅이 있으니 자세한 내용은 아래 링크 참고해주세요.

http://www.hahwul.com/2017/05/web-hacking-ooxml-xxe.html

Burp Suite Extension!

원작자, PortSwigger쪽 github로 들어가면 확장기능을 받을 수 있습니다. 오픈소스로 공개되어 있어 참여를 통해 더 좋은 툴로 만들어나갈 수도 있겠죠.

https://github.com/maxence-schmitt/OfficeOpenXMLEditor https://github.com/PortSwigger/office-open-xml-editor

office 문서에는 여러가지 xml 파일이 있습니다. 그 중 이 확장기능은 기본적으로는 [Content_Types].xml 에 대한 편집을 지원합니다. 물론 다른 파일에 대해서 편집하고 싶다면 conf/conf.json 을 수정하여 변경할 수 있습니다.

[content_Types].xml은 기본적으로 꼭 들어가야하는 파일이고 파싱에도 많이 사용되기 때문에 대부분 이쪽으로 공격코드를 많이 넣지요.

아무튼 설치로 넘어가보면.. 먼저 clone 해줍니다.

#> git clone https://github.com/PortSwigger/office-open-xml-editor #> cd office-open-xml-editor

보면 python 코드 3개와 잡다한 파일이 보입니다.

. ├── OfficeOpenXMLEditor.py ├── README.md ├── UpdateableZipFile.py ├── conf │ └── conf.json ├── images │ ├── OfficeOpenXMLTab.png │ └── OfficeOpenXMLTabCollaborator.png └── multipart.py

여기서 메인이 되는 파일은 OfficeOpenXMLEditor.py 입니다.

Burp Suite를 실행한 후 Extender > Extension > Add 로 가셔서 Extension Type을 python으로 설정하고 Load 해줍니다.

이후부터 Proxy 탭과 Repeater에서 OOXML 사용 시 OOXML 편집 도구가 나타납니다. 한땀한땀 만들거나 기존에 나와있는 Rails 코드 쓰는 것 보단 훨씬 편하겠네요 :)

귀찮았는데, 굉장히 편해졌습니다 :)

Reference

https://github.com/maxence-schmitt/OfficeOpenXMLEditor https://github.com/PortSwigger/office-open-xml-editor http://www.hahwul.com/2017/05/web-hacking-ooxml-xxe.html