请给我一个提示,为什么我的代码不容易受到XXE的攻击。
代码:
$text = $_POST['textarea'];
$doc= new DOMDocument();
$doc->loadXML($text);
echo $doc->textContent;
测试用例1:
<justsomexmltag>Hello world</justsomexmltag>
结果1:
Hello world
到现在为止,一直都还不错。但是,当我尝试注入XML代码以检索本地文件的内容时:
<?xml version="1.0"?>
<!DOCTYPE log [
<!ENTITY ent SYSTEM "test.txt">
]>
<log><text>&ent;</text></log>
然后什么都不打印。“test.txt”在文件结构中与我执行攻击的php文件处于同一级别。我已经尝试过了
<!ENTITY ent SYSTEM file:///"test.txt">
以及
<!ENTITY ent SYSTEM file:///full path to the file>
但无济于事。
test.txt:
This is just a test.
已尝试:
<test>This is just a test.</test>
没有结果。
有什么提示吗?
反映保罗·克罗维拉,这里有一个编辑:
CP-ing您的代码导致:
DOMDocument::loadXML(): I/O警告:加载外部实体文件失败://文件名的完整路径
DOMDocument::loadXML():无法处理实体中的实体ent
DOMDocument::loadXML(): Entity'ent'未在Entity中定义
默认情况下,libxml不会精确加载外部实体以避免此问题。要说服它这样做,您需要在加载之前将替换实体
或validateOnParse
设置为true
。例如:
$xml = <<<'XML'
<?xml version="1.0"?>
<!DOCTYPE log [
<!ENTITY ent SYSTEM "test.txt">
]>
<log><text>&ent;</text></log>
XML;
$dom = new DOMDocument();
$dom->substituteEntities = true;
$dom->loadXML($xml);
echo $dom->textContent;
输出:
This is just a test.
我在fortify报告中收到了第4行的XML外部实体注入安全警告。不知道如何修复它。我对SOAP、JAXB和Marshaller很陌生。 第4行(XML外部实体注入)高问题详细信息王国:输入验证和表示扫描引擎:SCA(语义) 接收器详细信息接收器:解组() 提前感谢!
问题内容: 我在veracode报告中得到了下一个发现:XML外部实体引用(’XXE’)(CWE ID 611)的不当限制引用了下面的代码 … … 我一直在研究,但是我还没有找到这个发现的原因或使它消失的方法。你能告诉我怎么做吗? 问题答案: 您是否看到过有关XXE的OWASP指南? 您没有禁用应禁用的3个功能。最重要的是第一个:
为了防止XXE攻击,我禁用了Java DocumentBuilderFactory推荐的以下功能-https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention\u Cheat\u Sheet。 如果我没有将外部常规实体和外部参数实体设置为false,是否存在任何漏洞?因为当我们将disallow doctype decl设
我们对代码进行了安全审计,它提到我们的代码容易受到XML外部实体(XXE)攻击。 XML外部实体攻击利用XML功能在处理时动态构建文档。XML实体允许动态包含来自给定资源的数据。外部实体允许XML文档包含来自外部URI的数据。除非配置为其他方式,否则外部实体会强制XML解析器访问URI指定的资源,例如本地计算机或远程系统上的文件。此行为会使应用程序遭受XML外部实体(XXE)攻击,这些攻击可用于执
问题内容: 最近,我们对代码进行了安全审核,问题之一是我们的应用程序受到 Xml eXternal Entity (XXE)攻击。 基本上,该应用程序是一个计算器,可通过Web服务以XML形式接收输入。 这是对我们的应用程序进行此类XXE攻击的示例: 如您所见,我们可以引用指向外部文件()的实体。 关于XML输入本身(该部分)未与JAXB(v2.1)一起编组。Web服务部分基于jaxws- rt(
想知道如何使用Xstream API修复Xml外部实体(XXE)漏洞。 就像我们能做的一样 使用DocumentBuilderFactory。更多详细信息-https://www.owasp.org/index.php/XML_External_Entity_(XXE)\u预防\u备忘单 我的代码是这样的-