💫Event Based XSS
In JavaScript, several events can be used to trigger Cross-Site Scripting (XSS) payloads
- onabort: This event is triggered when an image fails to load.
- onerror: This event is triggered when an error occurs or an image fails to load.
- onload: This event is triggered when an object has loaded.
- onchange: This event is triggered when the content of a form element, the selection, or the checked state has changed (for <input>, <select>, <textarea>).
- onsubmit: This event is triggered when a form is submitted.
- onreset: This event is triggered when a form is reset.
- onselect: This event is triggered after some text has been selected in an element.
- onblur: This event is triggered when an element loses focus.
- onfocus: This event is triggered when an element receives focus.Pyload= "onfocus=alert(1337) autofocus="
- onkeydown: This event is triggered when a key is pressed.
- onkeypress: This event is triggered when a key is pressed and released.
- onkeyup: This event is triggered when a key is released.
- onclick: This event is triggered when an element is clicked.
- ondblclick: This event is triggered when an element is double-clicked.
- onmousedown: This event is triggered when a mouse button is pressed.
- onmousemove: This event is triggered when the mouse is moved.
- onmouseout: This event is triggered when the mouse is moved off an element.
- onmouseover: This event is triggered when the mouse is moved over an element.
- onmouseup: This event is triggered when a mouse button is released.---------------------------------------------------------------
Standard HTML events
Tag Attribute
Tags supported
Note
Situational HTML events
Tag Attribute
Tags supported
Note
Examples:
---------------------------------------------------------------
HTML5 events
Name
Tags
Note
Examples:
---------------------------------------------------------------
CSS-based Injection
True XSS injection through CSS is dead (for now). The following are XSS vectors that depend on CSS stylesheets or are otherwise enhanced by them.
Name
Tags
Note
Note: Below uses style tags to set up keyframes for animation(start|end), but you can also check for already included CSS to reuse what’s already there by using e.g. animation: alreadydefined;. It doesn’t matter what the animation is, just that it exists.
animation: alreadydefined;. It doesn’t matter what the animation is, just that it exists.Payload that injects an invisible overlay that will trigger a payload if anywhere on the page is clicked:
Same, but for moving your mouse anywhere over the page (0-click-ish):
---------------------------------------------------------------
HTML Tags
Event handlers
Last updated