我正在尝试创建一个有效的HTML文件,该文件可以加载并显示其他文件(实体)。 示例:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY test SYSTEM "file:///myfile" >]><foo>&test;</foo>
这对于文本文件将正常工作,但是如果myfile的内容为“ TEST>”(即包含XML特殊字符),则会返回错误。
使用<foo><![CDATA[&test;]]></foo>
无效,因为... CDATA!
我尝试过这种攻击:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE a [
<!ENTITY test "<![CDAT">
<!ENTITY test1 "A[">
<!ENTITY filee SYSTEM "file:///myfile" >]><foo>&test;</foo>
<!ENTITY close "]]>">
]>
<foo>&test;&test1;&filee;&close;</foo>
但是遗憾的是它没有用。然后,我阅读了有关未解析的实体的信息,并尝试了以下操作:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE a [
<!ENTITY myent SYSTEM "FOO" NDATA bar>
]>
<test>&myent;</test>
并收到错误消息“不允许未解析的实体引用“&myent;”。”
反正有这样做吗?我想要类似<foo>TEST></foo>
的输出,其中“ TEST>”是我在第一个示例中加载的文件(“ myfile”)的内容
请注意,该XML文件没有动态交互(例如,使用python加载该文件,然后对其进行技巧)。我需要一个静态XML文件,其工作方式如解析时所述!
非常感谢您:D