当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-087255

漏洞标题:UWA 2.X 通用建站系统XXOO大礼包

相关厂商:asthis.net

漏洞作者: 路人甲

提交时间:2014-12-16 18:19

修复时间:2015-03-16 18:20

公开时间:2015-03-16 18:20

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:13

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-16: 细节已通知厂商并且等待厂商处理中
2014-12-16: 厂商已经确认,细节仅向厂商公开
2014-12-19: 细节向第三方安全合作伙伴开放
2015-02-09: 细节向核心白帽子及相关领域专家公开
2015-02-19: 细节向普通白帽子公开
2015-03-01: 细节向实习白帽子公开
2015-03-16: 细节向公众公开

简要描述:

欢迎使用 UWA 2.X ,是如斯(AsThis)基于 PHP 和 MySQL 开发的通用建站系统,程序简洁、灵活而具备强大的扩展性,他将是您轻松建站的首选利器。

详细说明:

#01 敏感路径泄露X1
/core/lib/core/App.class.php 第14行

class App extends Pfa {
/* initialization */
public function __construct() {
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
set_error_handler(array('App', 'app_error'));
//[RUNTIME]
App::build(); // pre-compile
//[/RUNTIME]
Url::dispatch(); // URL dispatch and define CTRLR_NAME, ACTN_NAME


其中 Pfa 父类没有验证是否存在 导致直接访问
http://localhost/core/lib/core/App.class.php
会导致爆出绝对路径

1.png


此问题在cms中多处存在请务必详查对于父类的继承相关代码
#02 敏感路径泄露X2
/core/tpl/page_trace.php 第17行

<div id="pfa_page_trace" style="padding:10px;margin:10px;color:#666;line-height:18px;background:#fff;border:1px solid #e5e5e5;">
<p style="padding:0;margin:0;border-bottom:1px solid #ccc;font-size:14px;color:#f60;"><?php echo L('_PAGE_TRACE_INFO_') ?></p>
<p style="padding:0 margin:5px 0 0;overflow:auto;height:300px;text-align:left;font-size:12px;">
<?php foreach($_trace as $key=>$info){echo $key . ' : ' . $info . "<br />\r\n";}?>
</p>
</div>


文件并未define function文件 并直接调用函数导致报错

2.png


#03 SQL injection
/core/lib/ext/AServer.class.php 第14-111行的定义类AServer时 第16-37行代码如下

public static function get_ip() {
$ip = '';
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
if($ip) {
array_unshift($ips, $ip);
$ip = '';
}
for($i = 0; $i < count($ips); $i++) {
if(!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
$ip = $ip ? $ip : $_SERVER['REMOTE_ADDR'];
$long = sprintf("%u", ip2long($ip));
return $long ? $ip : '0.0.0.0';
}


对于HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR都木有过滤 所以导致可以进行注入。
由于木有火狐就先不进行测试了 具体应用在/admin.php进行登录时会记录IP 对于IP却没有过滤,Ps:sqlmap使用要加--level=3

3.png


漏洞证明:

修复方案:

过滤
第一次提交通用洞洞不足指出~

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-12-16 22:31

厂商回复:

已确认,多谢反馈

最新状态:

暂无