Lucene search

K
huntrWfinn86F6A762-0F3D-443D-A676-20F8496907E0
HistoryApr 21, 2022 - 12:44 p.m.

Reflected XSS on demo.microweber.org/demo/module/

2022-04-2112:44:34
wfinn
www.huntr.dev
54

6.1 Medium

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

LOW

Integrity Impact

LOW

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

4.3 Medium

CVSS2

Access Vector

NETWORK

Access Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

PARTIAL

Availability Impact

NONE

AV:N/AC:M/Au:N/C:N/I:P/A:N

0.001 Low

EPSS

Percentile

48.2%

Description

Reflected XSS with filter bypass on /demo/module/ using module= & style= parameters.

Proof of Concept

https://demo.microweber.org/demo/module/?module='ont<a>ransitionend=alert(1)'"tabindex=1&style=transition:outline%200.001s&id=x&data-show-ui=admin&class=x&from_url=https://demo.microweber.org

Press tab for the alert() to show up.

Okay 3 things to unpack here:

  • " and ’ at various places allow breaking out of the html (root cause of the XSS)
  • ont<x>ransitionend gets sanitized to ontransitionend and bypasses the xss filter
  • style=“transition:outline 1s” tabindex=1 is the setup you need to trigger a transition without a <style> tag

Took me some time to finally find a XSS payload that runs here :)

I’d suggest you do not allow breaking out of the html here, so filter ’ & ". ont<x>ansitionend should be examined, this trick doesn’t work in every parameter. Additionally, some js eventhandlers are allowed e.g. onunhandledrejection, you could think about a on.*= regex.

6.1 Medium

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

LOW

Integrity Impact

LOW

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

4.3 Medium

CVSS2

Access Vector

NETWORK

Access Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

PARTIAL

Availability Impact

NONE

AV:N/AC:M/Au:N/C:N/I:P/A:N

0.001 Low

EPSS

Percentile

48.2%

Related for 86F6A762-0F3D-443D-A676-20F8496907E0