Viden Labs 在 Synametrics 的 SynaMan 中发现了一个不安全的直接对象引用(IDOR)漏洞。该漏洞存在于 4.9 及更早版本中。
该漏洞已在 5.0 版本中修复。
“不安全的直接对象引用(IDOR)是一种访问控制漏洞,当应用程序使用用户提供的输入直接访问对象时就会出现这种漏洞。” - https://portswigger.net/web-security/access-control/idor。
利用该漏洞,可以访问 SynaMan 用户主文件夹(包括子文件夹)中(可能敏感的)文件,而攻击者并无权访问这些文件。
一个名为“internaluser”的 SynaMan 用户。该用户已加入 AD,但即使未加入 AD 也没有区别。
在 internaluser 的主文件夹中,有两个文件:
图 1:包含文件的用户目录
已为 file-download.docx 创建了一个下载链接,并共享给模拟的外部方。
图 2:SynaMan 文件下载页面
Web 应用程序测试从 10.0.2.0/24 网络执行,使用 Kali 上的 Burp Suite。
Windows Server 2019 实例运行的是开箱即用的配置,已应用最新的安全更新,并且 443 端口入站开放。
SynaMan 按照 Synametrics Technologies 网站上的指导,遵循最佳实践进行配置。
下图 3 概述了实验室测试的网络设置。
图 3:SynaMan 测试拓扑
| 计算机 | 角色 | 操作系统 | 浏览器 |
|---|---|---|---|
| 10.0.2.30 | Web 应用程序测试服务器 | Kali Linux(虚拟机) | Burp Suite 内置浏览器 |
| 10.0.3.50 | SynaMan 服务器 | Windows Server 2019(虚拟机) | N/A |
表 1 - 其他设置信息
当外部方访问下载链接(无论是共享给他们的,还是通过谷歌搜索“pubopp?”找到的)时,发现了一个漏洞。文件下载超链接包含一个 base64 编码的文件名(包括路径)。此路径可以被修改,以从用户文件夹中下载未共享的其他文件。虽然这要求攻击者正确猜出文件名,但 Burp Suite 等工具使这种暴力破解变得简单且自动化。下图 4 对此进行了图形化说明。
图 4:GET 请求漏洞的图形化表示
下图 5 显示了点击下载链接时产生的 GET 请求。
图 5:Burp Suite GET 请求
检查 base64 编码的文件名(作为名为“fn”的参数传递)可以看到文件位置。
图 6:Burp Suite Base64 文件名
使用 Burp Suite,可以将其修改为另一个文件名,并在 GET 请求中替换。在本例中,我们将使用“secret.txt”,因为我们知道该文件存在于文件夹中。
图 7:Burp Suite 修改后的 Base64 文件名
图 8:Burp Suite 修改后的 GET 请求
提交修改后的 GET 请求,我们可以下载未共享的文件,如下方图 9 所示。
图 9:SynaMan 未授权下载
SynaMan 当前可用的安全设置无法提供缓解此攻击的控制措施,但所有下载的文件都会被记录。