问题标签 [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 投票
1 回答
626 浏览

java - XXE 十亿笑攻击似乎没有像 Sonar 推荐的防止 XXE 攻击的解决方案所预期的那样得到缓解

XXE 安全威胁目前没有。在 OWASP 十大 Web 应用程序安全威胁列表中排名第 4,因此我希望 Java 标准 XML 库能够阻止此类攻击。但是,当我以 Sonar 推荐的方式使用 Validator 类时,规则“XML 解析器不应受到 XXE 攻击 (java:S2755)”(规则链接):

在 Java 11 中,billionlaughs.xml 是

我得到以下异常:

所以我的问题是这是否被认为是减轻十亿次笑声攻击的正确方法(毕竟,有 64000 个实体扩展的限制),或者是否有另一种方法来配置 XML 解析以简单地避免查看该<!DOCTYPE ..>部分。

0 投票
1 回答
296 浏览

xml - 如何将 XML DTD 实体分配给属性值

我的 XML:

我想将 xxe(test.txt 文件的内容)传递给 VALUE_OF_XXE。

0 投票
1 回答
525 浏览

java - IllegalArgumentException:在为“XML 解析器不应易受 XXE 攻击”实施 sonarqube 解决方案时不支持

我的 java 项目中有这个 sonarqube 问题:Disable access to external entity in XML parsing。我已经实现了这样的兼容解决方案:

但是现在当我调试代码时,我遇到了这个异常:

我究竟做错了什么?

0 投票
0 回答
50 浏览

xml - 使用 RestTemplate SpringBoot 2.3.3 预防 XXE

我正在开发 Spring Boot 2.3.3。和休息模板。下面是获取 XML 的一段代码:

RestTemplate rt = new RestTemplate(); rt.exchange(baseURL + 路径, HttpMethod.GET, httpEntity, classObj);

我有一个带有示例 XML 和 DOCTYPE 的测试用例,它应该在解析中失败,但它没有。休息模板似乎正在正确解析 XML。XML:

如果我将实体添加到 XML,则解析失败并出现 OOM 错误。

如何防止 restTemplate 解析文档类型。当我在调试模式下运行测试时,我可以看到 restTemplate 中的 Jaxb2RootElementHttpMessageConverter 已经将 isSupportDtd 设置为 false,这似乎不起作用。

0 投票
1 回答
114 浏览

.net - 尽管不允许 XML,但 Web Api XXE(Xml eXternal Entity) 注入

我们在公司进行了一项测试,以找出潜在的安全漏洞。我们有一个 .NET Web API 解决方案,我们的请求只支持 json。进行的测试如下:在 api 端点上发出了一个 post 请求,body 中有一个 xml。xml 有一个指向黑客服务器的 url。像这样的东西

api 确实给出了响应:{“消息”:“此资源不支持请求实体的媒体类型 'text/xml'。”}

然而,在服务器 imhacker 上监控流量的测试人员确实看到请求https://imhacker.com/XXE通过了所以我有 2 个问题:

  1. 尽管响应说不支持 xml,但该请求是如何执行的
  2. 解决办法是什么?我看到一些建议说:禁止或忽略 DTD 处理。如何将此应用于 web api 中的所有端点

我还看到一些人建议删除 XMLFormatter,但我的代码已经对所有格式化程序执行了清除操作,并且只读取了自定义的 json 格式化程序

0 投票
0 回答
35 浏览

xml - 哪些标签用于避免 xxe、xml 注入中的过滤器

我正在这样做捕获标志:https ://blog.mzfr.me/vulnhub-writeups/2019-08-24-scare

我正在测试 xxe 的有效负载,但它们都不起作用,即使在对某些字符进行 url 编码之后也是如此

在我在这里发布的演练中,我看到他的有效载荷与我使用的有效载荷太相似了

我发现他对查询进行了标记,第二个标记必须是“用户”,否则将无法正常工作

这是有效的payload <%3fxml+version%3d"1.0"%3f><!DOCTYPE+root+[<!ENTITY+test+SYSTEM+'file%3a///etc/passwd'>]><root><user>%26test%3b</user></root>

以下是一些我使用过但没用的有效载荷

我的问题是:为什么它必须是标签“用户”,我怎么知道我需要使用它?为什么要打标签?

提前谢谢你,对不起我的英语

0 投票
0 回答
49 浏览

java - Improper Restriction of XML External Entity Vulnerability Fix

I am having XXE vulnerability in my code,Improper Restriction of XML External Entity

I have added the below two lines of code(XML parser) to fix the issue. But still the fix is not working.

anything I missed? Can someone help pls

0 投票
1 回答
32 浏览

xml - 这个 XML DTD 中的 '%' 是什么意思?

当我练习 XXE 时,我发现当我使用下面的 DTD ENTITY 来发送我的请求时它起作用了。

但是当我发送它时它不起作用。

它们之间的区别是“%”和“%”,我想知道为什么我在这里直接使用“%”时不起作用。谢谢你。

0 投票
1 回答
142 浏览

java - 嗨,我在 SonarQube 违规中遇到了一个阻止程序 - 在 XML 解析中禁用对外部实体的访问

尝试使用 sonarqube 中给出的修复程序。

但我在 setAttribute 上遇到运行时异常:“java.lang.IllegalArgumentException:未知配置属性http://javax.xml.XMLConstants/property/accessExternalDTD”

这似乎是因为使用 [9.7] 的 saxon jar 版本中的错误。它在 saxon 10.3 上运行良好。有关此错误,请参阅https://saxonica.plan.io/issues/4729

以下是我的问题:

  1. 有没有办法让它在我现有的撒克逊版本上工作(不升级到 10.x)。尝试使用 transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true) 但 sonarqube 不满意,因为它期望上述修复。

  2. 如果升级到 10.x 是唯一的方法,那么下面是我面临的挑战:

    我正在为某些业务逻辑覆盖 TraceListener 中的方法。但是方法签名在最新版本上发生了变化,如下所示:

    类 - net.sf.saxon.lib.TraceListener

    Saxon 9.7 -> public void enter(InstructionInfo 指令,XPathContext 上下文)

    Saxon 10.x -> public void enter(可跟踪指令,java.util.Map<java.lang.String,java.lang.Object> 属性,XPathContext 上下文)

    我目前的代码:

我的新代码将是:

所以问题是 10.x jar 在其 Traceable 类或 InstructionInfo 类中没有 getConstructType() 方法。如何在 10.x 版本中使用 getConstructType()?

PS:如果第一个问题得到回答,那将非常有帮助,即)如果我能够用我当前版本的 jar 来解决,因为新版本需要测试整个项目的所有功能:(希望有人能帮助我,谢谢进步。

0 投票
0 回答
71 浏览

c# - 允许在 ASP.NET Core 中进行 XML 外部实体注入

您好我正在努力在 ASP.NET Core 中创建一个易受XML 外部实体注入攻击的网页。我这样做是为了测试缓解 XXE 攻击的方法。我想解析器默认情况下不受 XXE 影响。因此,我尝试了几种不同的方法来使解析器易受攻击,但似乎都不起作用。到目前为止,我有一个设置设置为的 XMLReader DTDProcessing.Parse,加载到带有自定义 URL 解析器的 XMLDocument 以允许任何内容通过。我还缺少其他设置吗?要遵循的代码:

加载 XML 文档并检索数据的服务

恶意 XML 文档