问题标签 [xxe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
574 浏览

java - 如何保护球衣服务器上的 xml 请求?

我目前有一个使用 jersey-server 1.1 框架创建的简单 xml 端点(示例)。它使用以下表示法使用和生成 XML:

但是端点容易受到 XXE 攻击。(示例)它也可以让我的服务器使用这个符号来请求任何端点......

我想要一种保护服务器的方法,并且不允许它调用其他服务器/向攻击者提供文件。

有没有办法做到这一点,因为包括 XML 读取在内的所有内容都来自框架本身?@Consumes(MediaType.APPLICATION_XML)

我认为我可以做到这一点的唯一方法是以某种方式在请求正文上使用正则表达式和过滤器?阻止DOCTYPE,请求并返回错误SYSTEMENTITY但我想知道是否有更简单的方法来执行此操作并覆盖的默认行为@Consumes(MediaType.APPLICATION_XML)

0 投票
1 回答
158 浏览

orbeon - Orbeon Forms:有没有办法禁用外部实体的处理以避免 XXE 攻击?

在 PenTest 之后,安全团队发现在我们的 Web 应用程序通过 HTTPS 请求提交 Orbeon 表单时可能会受到 XXE 攻击。

他们能够拦截以下 XML:

<!ENTITY test "My-OwnEntity">并通过操纵请求注入一个新的外部实体。这是提交给服务器的 XML:

然后正确处理请求,并且实体的值出现在服务器返回的响应中。

根据他们的说法,提出了两种方法/解决方案: 1. 创建允许实体的白名单;或 2. 在所有情况下阻止处理这些外部实体。

但是我在 Orbeon 文档中找不到实现任何这些解决方案的方法(第二种更适合我的具体案例)。有谁知道该怎么做或经历过类似的情况并以不同的方式处理?

谢谢你。

0 投票
1 回答
332 浏览

java - SAXParserFactory 安全处理功能在 jboss 服务器中不起作用

我正在运行以下代码片段以启用安全处理功能,并且它在使用 tomcat 服务器的 rest API 中工作正常。但是这个相同的代码片段在使用 JBoss 服务器时不起作用。

请建议任何解决方法/修复,因为我必须修复XXE injection

0 投票
0 回答
318 浏览

php - Libxml_disable_entitiy_loader(false); 仍然没有加载外部实体

我一直试图在我的虚拟机上模仿 XXE 漏洞以用于学习目的。但是,我想我误解了一些东西。当我调用 libxml_disable_external_entities(false); 我认为现在加载了外部实体,但是,外部实体似乎没有加载。

当我设置标志 LIBXML_NOENT 时,它确实有效。但这给我留下了一个问题,那么 libxml_disable_external_entities 实际上做了什么?我已将其设置为 false 和 true,结果相同。

所以我带着同样的问题上网,注意到ubuntu网站上有一个CVE报告(我在ubuntu上测试过)。CVE 声明 libxml 标准易受 XXE 攻击。修复是默认停止加载外部实体。见:https ://usn.ubuntu.com/1904-1/

我的测试设置:

我希望我的网络服务器会接到一个电话,但它没有。PHP 处理程序没有给我任何输出。所以我的问题是: libxml_disable_entity_loader 实际上做了什么?

PS:在 libxml 代码中也找不到任何东西。除非另有说明,否则可以找到停止加载外部实体的修复程序。

谢谢!

更新:我发现它仅适用于 libxml_disable_entitiy_loader(false); 的组合;以及在“loadXML”方法中设置的 LIBXML_NOENT 标志。

编辑:该方法执行以下操作(在 PHP 代码中):

但是,在 libxml 代码中搜索 entity_loader_disabled 不会产生任何结果。

0 投票
0 回答
250 浏览

xml - 如何在经典 ASP 中禁用 DTD 处理以防止 MSSOAP.SOAPClinet30 中的 XXE 攻击

我正在使用 MSSOAP.SOAPClinet30 使用 Classic ASP 发出 SOAP Web 服务请求,它返回 XML 并且它有一个它处理的外部实体。

假设,Web 服务方法返回以下 XML:

在这种情况下,它处理外部实体和披露信息。

那么,有没有办法通过使用“MSSOAP.SoapClient30”或我可以在经典 ASP 中使用的任何其他相关组件来防止 DTD 处理。

0 投票
5 回答
16515 浏览

xml - org.xml.sax.SAXNotRecognizedException:无法识别属性“http://javax.xml.XMLConstants/property/accessExternalDTD”

我想在我的项目中防止 XXE 攻击。这是运行在 java 7(没有 maven)和 jboss-as-7 服务器上的旧 api 项目。但是在执行过程中我得到错误: org.xml.sax.SAXNotRecognizedException: Property ' http://javax.xml.XMLConstants/property/accessExternalDTD ' is not Recognized 。

我已经搜索过它,每个论坛都有不同的含义,说它是一个错误。我还没有找到任何有关此异常的解决方案。请帮忙。提前致谢。

0 投票
2 回答
980 浏览

java - XXE - 无法检索多行文件

我创建了一个易受(盲)XXE 攻击的 Java 应用程序。

我能够利用该漏洞并使用以下方法检索包含单行的文件:

1)拦截XML请求并修改如下:

2) 在 192.168.27.152 上,在端口 80 上提供以下 evil_oob.dtd:

3)在攻击者机器的 2121 端口上运行修改后的 FTP 服务器 ( Python )。

正如我之前解释的,当 test.txt 包含一行时,一切正常。但是,如果 test.txt 包含多行(因此包含回车),则 ftp URL 无效并且我收到以下错误:

我还尝试用在不同端口上运行的 http 服务器替换 FTP 服务器,但我当然会遇到类似的错误,因为在这种情况下 URL 也是无效的。

我想知道是否甚至可以通过盲 XXE 检索包含多行的文件?我知道使用 PHP 有时可以使用 PHP 过滤器对文件进行 base64 编码,但 Java 并非如此。

我已经阅读了数十篇文章,但找不到实现目标的方法。

0 投票
1 回答
471 浏览

java - 如何使用 JAXB 防止 XML 实体注入

我指的是使用 JAXB 防止 XXE 攻击这个链接,

但仍然是kiwan工具向我展示了非常高的漏洞xif.createXMLStreamReader(soapHeader.getSource()),所以如果有人知道,请帮助我。

我的代码如下:

谢谢。

0 投票
0 回答
529 浏览

xml - 我的 XXE 有效负载没有得到关于我要利用的文件的响应

我是一名黑客,现在我正在寻找安全漏洞(错误)以获得赏金。昨天,当我在一个网站上寻找 bug 时,我看到一个这样的请求:

我正在考虑测试 XXE:

太棒了!有用!我通过使用 XML 内容被新用户关注 ====> XXE 漏洞

然后我决定通过这个请求来利用它:

但我只是得到这样的回应:

没有事情发生!我要阅读的文件没有出现。唯一的事情似乎只是一个“真实”的回应。看起来我的 XXE 有效载荷不起作用。我尝试了很多但它仍然不起作用,没有任何反应,只是那个简单的响应。有没有黑客知道如何利用它,请帮助我,我会非常感谢你!(如果英语不好,请见谅)

0 投票
1 回答
464 浏览

java - 在 TransformerFactory 中设置安全处理会导致 XSL 出现问题

我正在使用 Apache FOP 2.4 生成一个以 XML 文件作为输入的 PDF 文档。为了防止 XXE 攻击,我需要在 TransformerFactory 中设置安全处理功能(FEATURE_SECURE_PROCESSING):

设置此功能后,我无法生成任何 PDF 文档,并且收到警告:

这是 XSL 文件 (foo.xsl) 的一部分:

我应该如何使用此功能并使其发挥作用?Java版本是8。