实在想不出标题了,做项目的时候遇到了这么个站点。后来还是很顺利的getshell了,由于google上也找不到渗透此框架的资料,所在此次做一下记录。

偷懒,用shodan看看端口

开放了几个高危端口,不过不是弱口令其实不碍事。

看页脚得知版本号为5.14,找了下相关的漏洞,发现xss居多,此外还有一个任意文件读取以及SSRF。

XSS这种被动攻击放在后面考虑,首先尝试通过Directory Traversal来读取相关配置文件。

得到Mysql密码,

不幸的是,mysql做了限制用户登陆IP

不过根据猜测,使用这个mysql的密码作为web应用的管理员密码成功登陆进了后台。

粗略看了后台功能。比较局限,不过有一个点吸引了我的注意。

它这里的插件包居然是JAR的,这就说明我们极有可能可以部署一个恶意插件上去。

Atlassian Confluence的Add-on分为Marco和plugin。

Marco会简单很多,所以我就开始尝试开发一个恶意Marco。

为了偷懒,我直接根据官方的Demo改了一下。

https://developer.atlassian.com/server/framework/atlassian-sdk/create-a-confluence-hello-world-macro/

不过我运气十分糟糕,编译出来的JAR可以安装但是方法全都出问题,也就是无法利用。我开始怀疑是不是版本或者其他的什么问题。

于是我开始寻找其他的离线插件,通过人工Fuzz,寻找到了一个可用的插件

quote-macro-1.0.jar

拿到了一个可用的插件,接下来我们就该向其中插入我们恶意的代码了,将其改造成名副其实的「特洛伊木马」。

JAR是已经打包好的项目,使用压缩包打开可以看到全是class文件,也就是字节码。(这一句是废话)

我们现在做的就是修改字节码。而我能想到的方案有两个。

  • 通过JD-GUI把项目反编译,然后修改源码,重新打包
  • 通过Javassist直接修改字节码

这里我采用第二种方法,第一种方法太繁琐了,而且容易出各种各样的问题。

这里我直接丢出我的方法。

木马制作流程:

https://github.com/Lz1y/Atlassian-Confluence-Trojan

好的,制作完了,直接上传

三个模块全部可用。接下来想办法触发我们恶意语句所在的函数。

新建一个空白页。

添加一个宏。

选择我们的宏

ok,初始化函数成功载入。

Getshell

 

 

 

 

=====

事后,看到wupco师傅一个很骚的RCE..

 

http://example.com/doauthenticate.action?destination=${@[email protected]().exec("ping  xxx.com")}
跪膜师傅...听师傅说这是因为就是用了低版本的库“Atlassian\Confluence\confluence\WEB-INF\lib\xwork-1.0.3.2.jar”造成的表达式注入。





本文链接地址: Atlassian Confluence Case

原创文章,转载请注明: 转载自Lz1y's Blog

发表评论

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