Coppermine Photo Gallery多个跨站脚本及SQL注入漏洞
2008-10-04
系统编号:
WAVDB-01135
BUGTRAQ: 27511 27509
影响版本:
Coppermine Photo Gallery 1.4.14
程序介绍:
Coppermine是用PHP编写的多用途集成web图形库脚本。
漏洞分析:
Coppermine实现上存在输入验证漏洞,远程攻击者可能利用此漏洞在用户浏览器中执行恶意代码。
Coppermine的util.php和reviewcom.php文件没有正确地验证某些参数输入,允许远程攻击者通过注入任意SQL命令控制SQL查询:
- function update_thumbs()
- {
- global $CONFIG, $lang_util_php;
- $albumid = (isset($_POST['albumid'])) ? $_POST['albumid'] : 0;
- $albstr = ($albumid) ? "WHERE aid = $albumid" : '';
- $updatetype = $_POST['updatetype'];
- $numpics = $_POST['numpics'];
- $startpic = (isset($_POST['startpic'])) ? $_POST['startpic'] : 0;
- echo "<h2>{$lang_util_php['thumbs_wait']}</h2>";
- $result = cpg_db_query("SELECT * FROM {$CONFIG['TABLE_PICTURES']}
- $albstr LIMIT $startpic, $numpics");
- $count = mysql_num_rows($result);
未经任何过滤便在SQL查询中使用了$_POST['albumid']、$_POST['startpic']和$_POST['numpics']。
- if (isset($_POST['cid_array'])) {
- $cid_array = $_POST['cid_array'];
- $cid_set = '';
- foreach ($cid_array as $cid)
- $cid_set .= ($cid_set == '') ? '(' . $cid : ', ' . $cid;
- $cid_set .= ')';
- cpg_db_query("DELETE FROM {$CONFIG['TABLE_COMMENTS']}
- WHERE msg_id IN $cid_set");
- $nb_com_del = mysql_affected_rows();
- }
在DELETE查询中使用了来自$_POST['cid_array']的未经过滤数据。
docs/showdoc.php文件没有正确地验证h和t参数输入便返回给了用户,这可能导致在用户浏览器会话中执行任意HTML和脚本代码。
漏洞利用:
http://localhost/coppermine.1.4.14/docs/showdoc.php?h=waraxe&t=[XSS]
http://localhost/coppermine.1.4.14/docs/showdoc.php?h=</title>[XSS]&t=waraxe
http://localhost/coppermine.1.4.14/include/slideshow.inc.php
解决方案:
厂商补丁:
Coppermine
----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://downloads.sourceforge.net/coppermine/cpg1.4.15.zip
信息来源:
<*来源:Janek Vind (come2waraxe@yahoo.com)
链接:http://secunia.com/advisories/28682/
http://coppermine-gallery.net/fo ... tpage;topic=50103.0
http://marc.info/?l=bugtraq&m=120179246501874&w=2
*>