Uchome社会化网络软件后台GetWebShell漏洞

来源:岁月联盟 编辑:猪猪 时间:2010-04-19

影响版本:
UCenter Home 2.O

程序介绍:

UCenter Home是PHP+Mysql构建的社会化网络软件。

漏洞分析:

程序中js.php文件存在代码执行漏洞,原因是正则匹配时引号使用不当,导致可以任意提交并执行PHP代码。
Php中单引号与双引号是有区别的:
" "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。
' '单引号里面的不进行解释,直接输出。

 
这里正则匹配后的2在双引号里,导致了代码可以执行。
 
js.php代码如下:
 

include template("data/blocktpl/$id");
 
$obcontent = ob_get_contents();
obclean();
 
$s = array("/(r|n)/", "/<divs+class="pages">.+?</div>/is", "/s+(href|src)="(.+?)"/ie");
$r = array("n", '', 'js_mkurl("1", "2")');//代码执行
 
$content = '';
if($obcontent) {
$obcontent = preg_replace($s, $r, $obcontent);
$lines = explode("n", $obcontent);
foreach ($lines as $line) {
$line = addcslashes(trim($line), '/'');
$content .= "document.writeln('$line');n";
}
} else {
$content .= "document.writeln('NO DATA')";
}

漏洞利用:
http://www.syue.com/

漏洞修复:
厂商补丁:
UCenter Home
----------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://u.discuz.net/