我一直在阅读XXE注入,到目前为止,我看到的每个示例都涉及到一个XXE服务器自愿加载xml外部实体(如下所示)。
loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
$creds = simplexml_import_dom($dom);
$user = $creds->user;
$pass = $creds->pass;
echo "You have logged in as user $user";?>考虑到XXE注入攻击的风险以及这些攻击的可能性( a)泄露机密信息和/或b)执行远程代码执行(RCE),why是否会决定首先启用加载外部xml实体?
到目前为止,我还没有看到任何关于支持加载外部xml实体的动机的解释。这只是懒散的编码吗?无知?方便吗?
发布于 2019-07-17 16:26:10
为什么web服务器开发人员/管理员首先决定启用加载外部xml实体?
通常,这不是显式启用,而是不知道问题所在,并使用具有不安全默认设置的库。默认情况下,许多库都启用了外部实体的加载。引用OWASP外部实体预防备忘表的话:
..。从libxml2版本2.9开始,默认情况下XXE已被禁用
这意味着在此之前它被启用了
..。草鱼-c.使用XercesDOMParser来防止.使用SAXParser,这样做可以防止.使用SAX2XMLReader,这样做可以防止.
,这表明默认情况下它是启用的。
..。大多数Java解析器的默认设置是启用XXE。
本文档中还有更多默认启用XXE的库。
https://security.stackexchange.com/questions/213637
复制相似问题