LDAP Account Manager漏洞带来未经身份验证的远程代码执行风险

在内部渗透测试期间发现了LDAP帐户管理器(LAM)中的未经身份验证的任意对象实例化漏洞。LAM是一个PHP Web应用程序,用于通过Web前端管理LDAP目录中的用户、组或DHCP设置等条目,是FreeIPA的替代方案之一。它包含在Debian存储库中。但研究人员Arseniy Sharoglazov发现的一个漏洞可能允许攻击者在一个请求中创建任意对象并实现远程代码执行(RCE),而无需任何带外连接。

该技术依赖于利用构造new $a($b),其中变量$a代表将为其创建对象的类名,变量$b表示要传递给对象构造函数的第一个参数。

“当你用任何编程语言编码时,你可以使用好的或坏的编程实践。如果$a$b来自非受控输入,那么实例化任意对象的构造new $a($b)的使用是一种不好的做法,”Sharoglazov说。

“这是一个狡猾的建筑。然而,没有人表明它真的很危险,所以有些人认为一切都应该没问题。”

他说,虽然该技术需要Imagick扩展,但这通常存在于较大的网站中,包括LAM系统本身。

Sharoglazov说,类似的任意对象实例化漏洞已经存在了很长一段时间,但通常不会这样报道。

“例如,您可能会阅读商业软件中的SSRF。例如,如果您了解PoC,您会发现它实际上是使用SoapClient类的任意对象实例化。但对于公众来说,这将只是SSRF,”他说。

“或者您可能会阅读有关SQL注入的信息。但它实际上是通过具有SQL注入的用户定义类利用的任意对象实例化。我发现并描述的这项技术展示了如何将任意对象实例化直接用于RCE。”

Sharoglazov说,披露过程进行得迅速而有效。他于6月16日首次报告该漏洞,LAM 8.0.1于6月29日发布,Debian软件包于7月5日更新,并于7月14日公开披露。

“我写信给LAM的开发者Roland Gruber,我在一小时内得到了初步回复,”他说。

“我们讨论了修复漏洞需要做的事情,以及使LAM更加安全的强化过程。之后,我们与他和Debian进行了协调披露。”

发表评论

评论已关闭。

相关文章