OpenPLC v3 Authenticated RCE Vulnerability

漏洞信息

漏洞名称: OpenPLC v3 Authenticated RCE Vulnerability

漏洞编号:

  • CVE: CVE-2021-31630

漏洞类型: 命令执行

漏洞等级: 高危

漏洞描述: OpenPLC v3是一个开源的PLC(可编程逻辑控制器)软件,广泛应用于工业自动化控制系统中。它允许用户通过Web界面进行PLC程序的编写、上传和管理,典型部署于工业控制环境中,因其开源和易用性,在工业自动化领域有一定的用户基础。该漏洞存在于OpenPLC v3的Web界面中,由于默认凭证的使用和硬件层代码的上传功能缺乏充分的验证,攻击者可以通过认证后上传恶意硬件层代码,进而在服务器上执行任意命令。这种漏洞的技术根源在于对用户输入的不当处理和对上传文件内容的安全检查不足。攻击者利用此漏洞可以在受影响的系统上执行任意代码,可能导致系统被完全控制,数据泄露或服务中断。由于攻击需要认证,因此攻击者需要先获取有效的凭证,但OpenPLC v3的默认凭证(用户名:openplc,密码:openplc)的存在大大降低了攻击的门槛。此漏洞的高危性在于其可能被用于针对工业控制系统的定向攻击,对工业生产和安全造成严重影响。

产品厂商: OpenPLC

产品名称: OpenPLC v3

来源: https://github.com/projectdiscovery/nuclei-templates/blob/5fc012a7075245b167e00316d026bbaeccd9ad2f/http%2Fcves%2F2021%2FCVE-2021-31630.yaml

类型: projectdiscovery/nuclei-templates:github issues

POC详情

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

id: CVE-2021-31630

info:
name: OpenPLC v3 Authenticated RCE (CVE-2021-31630) - Passive Check
author: machevalia
severity: high
description: >
Attempts to login with default credentials and upload a benign custom hardware layer.
If upload and compilation succeed, the server is likely vulnerable to CVE-2021-31630.
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2021-31630
- https://github.com/thiagorossener/openplc
tags: iot,plc,auth,openplc,cve,cve2021,rce

variables:
username: "openplc"
password: "openplc"

http:
- raw:
- |
POST /login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded

username=openplc&password=openplc

- |
GET /hardware HTTP/1.1
Host: {{Hostname}}

cookie-reuse: true
stop-at-first-match: false

matchers:
- type: status
status:
- 200

- type: word
part: body
words:
- "Hardware Layer Code Box"
- "Save changes"
condition: and