Contrexx多个输入验证漏洞


添加时间:
2008-10-02

系统编号:
WAVDB-00851
BugCVE: CVE-2005-2415
BUGTRAQ: 14352

影响版本:
Contrexx 1.0.4

程序介绍:

Contrexx是一款开放源码的内容管理系统。

漏洞分析:

Contrexx中存在多个输入验证漏洞:

1) poll模块中的SQL注入漏洞

Contrexx的poll模块允许用户通过点击圆按键并提交投票表单进行投票。在将圆按键的整数值传送给SQL抽象层时没有执行任何检查:  

    $query="SELECT voting_system_id from ".DBPREFIX."voting_results WHERE
         id=".$_POST["votingoption"]." ";
    $db->query($query);

通过保存、更改并提交修改过的投票表单,攻击者可以导致MySQL服务器泄漏其版本。

2) gallery模块中的SQL注入漏洞

没有经过过滤便将Contrexx的gallery模块的pId参数传送给了数据库:

    if(isset($_GET['pId']) && !empty($_GET['pId'])){
       $this->showPicture($_GET['pId']);
    }
    
    在showPicture()方式中:

    $objDb->query("SELECT id,name,path,linkname,link,size_show
                   FROM ".DBPREFIX."module_gallery_pictures
                   WHERE id=".$pictureId);

攻击者可以利用这个漏洞获得用户名和口令哈希的完整列表。

3) 搜索表单中的跨站脚步漏洞

可以通过在前端搜索表单的GET和POST请求执行跨站脚步攻击。Contrexx的输入过滤器过滤掉了<script>,但没有过滤<scr\ipt>。 

4) blog聚合模块中的跨站脚本漏洞

恶意攻击者可以利用社会工程学诱骗Contrexx管理员,要他们每天读取攻击者的blog。然后攻击者在blog中嵌入脚本代码。由于没有对入站的RSS聚合执行输入过滤,就可能在前端的聚合模块和管理员后端显示脚本代码。攻击者可以利用这种跨站脚本攻击窃取管理员的cookies并劫持会话。

5) 版本信息泄漏

在Contrexx的默认安装中,会在安装时创建名为“config/version.xml”的文件。该文件中包含有精确的版本信息。



解决方案:
厂商补丁:
Contrexx
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载1.0.5版本:
http://www.contrexx.com/

信息来源:
<*来源:Christopher Kunz (christopher.kunz@hardened-php.net)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=112206702015439&w=2
*>