-
-
[原创]漏洞 复现
-
发表于: 2022-8-20 12:18 4065
-
漏洞描述
6月29日,Atlassian官方发布安全公告,在Atlassian Jira 多款产品中存在服务端请求伪造漏洞(SSRF),经过身份验证的远程攻击者可通过向Jira Core REST API发送特制请求,从而伪造服务端发起请求,从而导致敏感信息泄露,同时为下一步攻击利用提供条件。需注意的是,若服务端开启注册功能,则未授权用户可通过注册获取权限进而利用。
利用范围
Jira Core Server, Jira Software Server, and Jira Software Data Center:
Versions after 8.0 and before 8.13.22
8.14.x
8.15.x
8.16.x
8.17.x
8.18.x
8.19.x
8.20.x before 8.20.10
8.21.x
8.22.x before 8.22.4
Jira Service Management Server and Data Center:
Versions after 4.0 and before 4.13.22
4.14.x
4.15.x
4.16.x
4.17.x
4.18.x
4.19.x
4.20.x before 4.20.10
4.21.x
4.22.x before 4.22.4
漏洞分析
环境搭建
使用docker搭建,在docker仓库(20cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Z5N6h3u0Q4x3X3g2V1L8$3y4C8k6i4u0Q4x3X3g2U0L8$3#2Q4x3V1k6J5i4K6u0r3N6$3g2S2M7X3g2G2k6%4g2J5P5g2)9J5c8X3q4@1L8r3q4K6M7$3W2S2L8W2)9J5k6r3A6A6M7X3q4Q4x3X3c8K6L8$3k6@1N6$3q4J5k6g2)9J5c8Y4c8S2k6%4y4Q4c8f1k6Q4b7V1y4Q4z5o6W2Q4c8e0c8Q4b7U0S2Q4b7f1c8Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0k6Q4z5o6W2Q4b7V1g2Q4c8e0g2Q4z5o6S2Q4b7U0m8Q4c8e0k6Q4b7V1y4Q4z5p5k6Q4c8e0k6Q4b7U0c8Q4z5f1g2Q4c8e0N6Q4z5o6W2Q4z5o6S2Q4c8e0k6Q4z5f1y4Q4b7f1y4Q4c8e0N6Q4z5f1q4Q4z5o6c8v1K9i4u0S2 Software Server镜像。
按步骤进行配置即可。
环境搭建成功
代码分析
分析Jira Mobile 插件,在com.atlassian.jira.plugin.mobile.rest.v1_0.BatchResource中存在barch API接口,阅读代码,该API应该是用于接收多个请求并在服务端执行。
分析下方的executeBatch函数。
在如图所示代码,实际负责发送HTTP请求。其中batchService接口的实现类BatchServiceImpl位于com.atlassian.jira.plugin.mobile.service.impl.BatchServiceImpl.class
分析batch函数。
根据如上代码,定位execute函数。
其中relativeLocation来自于requestBean.getLocation中的location。
后续传入toJiraLocation函数
继续跟进,位于com.atlassian.jira.plugin.mobile.util.LinkBuilder.class
URL通过简单的拼接构造,而其中的path来自于location,完全可控。
继续回到execute函数。
location会从json对象中获取,在获取到URL对象后,再调用httpClientProvider发送Http请求。
因为URL的后半部分是可控的,如果我们简单指定location为@xx.com,那么最终的URL为cbaK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6B7K9i4u0S2i4K6u0V1K9r3!0K6N6q4)9J5k6h3y4G2L8g2)9@1x3s2S2^5i4K6u0W2j5$3!0E0i4@1g2r3i4@1u0o6i4K6S2o6K9s2c8@1M7p5y4D9K9h3g2F1N6q4m8J5L8%4k6A6k6r3g2J5i4@1f1#2i4@1q4q4i4K6W2q4i4@1f1&6i4K6V1&6i4K6R3#2i4@1f1@1i4@1t1^5i4K6S2m8i4@1f1@1i4@1u0o6i4K6W2m8i4@1f1#2i4@1q4r3i4@1t1&6P5s2S2Q4x3X3g2U0L8$3#2Q4c8e0g2Q4z5p5k6Q4z5e0q4Q4c8e0W2Q4z5o6m8Q4z5o6q4Z5N6s2c8H3i4@1f1^5i4@1q4r3i4@1t1%4i4@1f1$3i4@1t1I4i4K6R3J5i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4K6R3&6i4K6R3H3i4@1f1@1i4@1u0n7i4@1p5#2i4@1f1#2i4@1q4r3i4@1u0o6i4@1f1^5i4K6R3%4i4@1t1@1i4@1f1@1i4@1u0m8i4K6R3$3f1#2y4d9c8W2!0q4y4W2!0n7b7#2)9^5c8W2!0q4y4W2!0n7y4q4)9&6c8g2!0q4y4q4!0n7b7g2!0m8y4#2!0q4y4#2)9&6y4q4)9&6c8W2!0q4x3#2)9^5x3q4)9^5x3R3`.`.
漏洞复现
使用burpsuite自带的dnslog功能进行探测,成功发送请求。
修复建议
- 将受影响的产品升级到最新安全版本:
Jira Core Server、Jira Software Server 和 Jira Software Data Center 可升级至:
8.13.22
8.20.10
8.22.4
9.0.0
Jira Service Management Server 和 Data Center 可升级至:
4.13.22
4.20.10
4.22.4
5.0.0
- 缓解措施
(1) 关闭用户注册功能。
(2) 禁用Mobile Plugin,具体步骤如下:
a、在应用程序的顶部导航栏中,选择设置 -> 管理加载项或管理应用程序。
b、找到Mobile Plugin for Jira Data Center and Server应用程序,然后选择禁用即可。
(3) 升级Mobile Plugin至最新版本。
赞赏
- [原创]数据库注入提权总结(一) 4686