审计丨从RCE到LDAP信息泄漏

背景

几个月前,我自愿对一家法国公司进行了安全审计。该公司有一个企业站,你可以在其中找到新闻,联系页面或下载文档。这是一个非常典型的网站,当加载某些内容,将会发送AJAX请求,该请求由2个参数组成。

并允许你以HTML格式获取一个包含最新新闻动态的响应。

远程代码执行

由此可以了解网站的工作原理。名为ajax的端点允许你使用任何类的任何方法。

在此之前,我尝试使用了stdClass类和方法,但没有任何功能。

然后我有了一个想法,删除class参数以尝试显示phpinfo()函数。

事实证明我的想法是对的,现在的问题是我怎样才能更有效地利用它呢?

在PHP中有一个名为system(https://secure.php.net/manual/fr/function.system.php)的函数,它允许你执行命令并返回执行结果。

system ( string $command [, int &$return_var ] ) : strin

但是,正如你所看到的,我需要一个允许放置我所选择的命令的参数。为此,我将使用我在某些页面上看到的一个参数,这个参数为args。

现在,我可以执行任何的UNIX命令,这意味着我可以做很多我想做的事情,例如我现在可以访问文件夹和文件及其内容等。

LDAP Server

最有趣的就是我发现了一个配置文件,其中包含一组数据库的登录名和密码(20个数据库)和一个LDAP服务器。

但为什么是一个LDAP服务器呢? 首先,让我们简单了解下什么是LDAP服务器。

我们对LDAP服务器比对数据库更感兴趣。由于服务器上安装了一个phpMyAdmin版本,因此即使它们在localhost外部无法访问,我也能连接到它。

LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。而目录服务的更新则一般都非常简单。这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。为了访问存储在目录中的信息,就需要使用运行在TCP/IP 之上的访问协议—LDAP。

来源:https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol

为了简化对LDAP的理解,重要的是要记住它是用户的目录。此目录允许用户仅连接一次并访问各种应用程序和网站,还允许打开Windows会话。

至于“为什么网站配置文件中存在LDAP访问?”是因为这些访问允许你定义站点上已经过身份验证用户的权限。

想要连接到MacOS下的公司LDAP服务器,我们必须要借助一些应用程序,但遗憾的是这些应用大都是些付费应用免费的很少。我个人使用的是LDAPSoft。

如果你有一个开源的可替代方案那我将非常感兴趣,因为当每个用户有大约40个字段时,使用终端连接到LDAP服务器将非常的麻烦。

LDAP凭据的访问权限仅限于读取权限,我无法修改用户的数据。

感谢维基百科和LDAP服务器!该安全漏洞涉及近40,000用户的信息。

我可以访问的信息包括:

名和姓,

个人电邮地址,

出生日期,

电话号码,

明文密码(随机数),

有关RFID标签(MiFare)的信息,

用于启动Windows会话的个人目录

员工的RFID标签允许你访问公司大楼,你还可以购买空白的RFID标签来输入LDAP服务器中的信息,从而欺骗性的访问大楼。这种类型的标签并不昂贵且易于编程。

短信警报

另外,该公司有一个我此前从未见过的系统,该系统可以向公司的所有员工发送警报短信,以防非法入侵或恐怖袭击。

实际上,通过搜索其中的一个配置文件,我能够从一个SMS发送服务中获取一个API密钥。

使用该密钥发送简单的HTTP请求,将允许我向整个公司的人发送短信。

总结

获取40,000名前雇员或雇员信息,

可以访问大约20个数据库的数据,

使用RFID标签访问公司大楼(?),

获取的用户密码,可否用于获取其它访问权限(?)。

最后,我向该公司发送了安全审计报告,他们积极并快速的进行了修复。

*参考来源:medium,FB小编secist编译

QQ代刷网

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注