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" />&nbsp;<input type="submit"...
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" />&nbsp;<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 Phorum 5.2.10 Phorum ------ 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: <a href=http://trac.phorum.org/changeset/4009 target=_blank rel=external nofollow>http://trac.phorum.org/changeset/4009</a>