Walks

网络安全爱好者

XSS笔记

XSS~TOP10大漏洞常驻成员,危害有多大我就不必多加强调了。

既然这么大的危害,那我们做个一个新世纪的少年肯定要对其有所了解。

          那什么是XSS?

借用百度百科上的解释

XSS~跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

自己对其的理解:就是往WEB网页中写入JS语言,从而利用JS来达到自己的目的。当浏览器解析HTML代码的时候,是不会自己识别里面的内容是好还是坏的,所以当我们绕过了WEB端的防御,就可以成为一个XSS漏洞。

           那XSS漏洞分为几种?

XSS漏洞分为三种,分别为:

1:反射型

输入的数据-》经过后端-》返回到浏览器-》浏览器解析

缺点就是利用较为困难,但还是可以用来钓鱼等利用的。

2:存储型

输入的数据-》经过后端-》存储到数据库-》返回到浏览器-》浏览器解析

博客上面的留言就是存储型,每当我们打开一个留言板的时候,都可以看到一些人写的留言,这些留言是存储到数据库一直存在的。

3:基于DOM类型(Document Object Model,文档对象模型)

客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。

          XSS能用来干什么?

就这样说吧,JS能做的XSS都能做。

最老生常谈的,莫过于盗取COOKIE,当然在如今HTTP ONLY的时代盗取COOKIE也只能在一些小站点上使用了。

XSS是很强大的,下面列出一些XSS能做什么:

1:DDOS(分布式拒绝服务攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。)

2:XSS钓鱼

3:获取用户系统信息

4:XSS Worm

等等     上面也说过,JS能做的,XSS都可以做。


上面,我们已经对XSS有了一个初步的了解,下面将要对XSS的绕过与防御来叙说一下。

既然有XSS这门攻击方法,那么防御也是必然的。

      在XSS的防御中,就是对输入过滤,对输出也同样过滤

    那么有下面的一些方法

  PHP直接输出html的,可以采用以下的方法进行过滤

  •      PHP直接输出html的,可以采用以下的方法进行过滤:
         1.htmlspecialchars函数
         2.htmlentities函数
         3.HTMLPurifier.auto.php插件
         4.RemoveXss函数(百度可以查到)
  •      PHP输出到JS代码中,或者开发Json API的,则需要前端在JS中进行过滤:
         1.尽量使用innerText(IE)和textContent(Firefox),也就是jQuery的text()来输出文本内容
         2.必须要用innerHTML等等函数,则需要做类似php的htmlspecialchars的过滤(参照@eechen的答案)
       
  •      其它的通用的补充性防御手段
         1.在输出html时,加上Content Security Policy的Http Header
        (作用:可以防止页面被XSS攻击时,嵌入第三方的脚本文件等)
        (缺陷:IE或低版本的浏览器可能不支持)
         2.在设置Cookie时,加上HttpOnly参数
        (作用:可以防止页面被XSS攻击时,Cookie信息被盗取,可兼容至IE6)
        (缺陷:网站本身的JS代码也无法操作Cookie,而且作用有限,只能保证Cookie的安全)
         3.在开发API时,检验请求的Referer参数
        (作用:可以在一定程度上防止CSRF攻击)
        (缺陷:IE或低版本的浏览器中,Referer参数可以被伪造)

这是对网上一篇文章的转载,原文地址:https://segmentfault.com/q/1010000004067521

说了防御,那么肯定也要谈谈绕过的方法了

       下面谈谈 XSS绕过

绕过的方法总结起来很麻烦,但有个几种类型。

 1:大小写绕过(利用了正则的完全匹配)

     2:编码绕过

     3:闭合标签等

     真的有点麻烦,我也就不重复造轮子了,下面给大家一个绕过总结的很好的网页,大家自己看看

XSS绕过文章地址:http://blog.csdn.net/qq_29277155/article/details/51320064

防止文章失效转载到了本博客,本博客XSS绕过文章地址:http://www.bywalks.com/89.html

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 17 = 23