• 网络安全——XSS跨站脚本攻击


    一、XSS概述

    1、XSS被称为跨站脚本攻击,由于和CSS重名,所以改为XSS;

    2、XSS主要基于JavaScript语言完成恶意的攻击行为,因为JavaScript可以非常灵活的操作html、CSS和浏览器

    3、原理:XSS就是通过利用网页开发时留下的漏洞(由于Web应用程序对用户的输入过滤不足),巧妙的将恶意代码注入到网页中,使用户浏览器加载并执行攻击者制造的恶意代码,以达到攻击的效果。

    这些恶意代码通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、Flash或者普通的HTML

    4、 XSS原理图

    5、 可能受到XSS攻击的位置:只要对用户的输入没有进行严格的过滤,就有可能遭到XSS攻击

    微博、留言板、聊天室等收集用户输入信息的地方,都有可能遭到XSS攻击

    6、实施XSS脚本攻击的前提条件

    (1)、需要向Web页面注入精心构造的恶意代码

    (2)、对用户的输入没有做过滤,恶意代码能够被浏览器成功的执行

    7、XSS的攻击语法

     

    8、XSS的危害

     9、XSS的分类

    (1)、反射型

     

     

    (2)、存储型

     

     

    (3)、DOM型

    DOM一般指文档对象模型。文档对象模型(Document Object Model,简称DOM

     

     

     

     

     

     

    二、XSS的payload构造

    1、

    2、

     3、

     

     4、

     

     三、XSS payload的变形

    1、

     2、

     3、

     4、

     5、

     6、


    三、XSS跨站脚本的实例

    在进行XSS攻击时,可以先查看网页的源代码,获取信息

    打开浏览器,访问http://ip/dvwa/login.php

    输入Username:admin和Password:password,登陆靶场

    先把级别设置为LOW,

    对反射型、存储型和DOM型进行攻击

    1、反射型

     在文本框内输入“”,,点击“Submit”,提交输入的payload,弹框,触发XSS漏洞

     

    结果:弹窗XSS

     2、存储型的XSS

     name 那一行有字符限制,只能输入10个字符,所以我们考虑在Message那一栏进行XSS攻击

    同样,输入

     结果同样是XSS弹窗,但是他的数据是永久性的,写到了数据库里面,你下次打开还是会有弹窗

     3、DOM型 XSS攻击,不会跟服务器有交互,直接在网页进行攻击

     先随便选一个

     

     在URL上进行XSS攻击

     结果还是出现XSS弹窗

     这就是LOW级别的三种类型XSS攻击


    先把靶机DVWA的网站数据库复位

     

     把级别调成Medium

    1、反射型XSS攻击

     我们先按低级的思路来试试看,输入

     这个结果说明试试看

     结果:攻击成功,出现弹窗

    查看网站源码

     2、存储型XSS攻击

     我们还是先用低级思路试一下,输入

     结果: 

    结果还是被过滤掉了,说明网站过滤大小写

     我们可以考虑从Name那一栏进行入手,但是只能输入10个字符,我们可以用Burpsuite进行抓包,然后在里面设置payload

    打开Burpsuite和浏览器代理,进行抓包(这里不进行演示)

     设置payload,设置好点击forword,我们输入大写的行不行

    结果:没有弹窗 

    改大小写也不行

    我们可以查看网页源码

     发现可能是闭合问题

    因为大小写都不行,我们改写另一种payload,基于报错机制的,如下图

    结果就出来了 


    先把数据库清除,我们接下来把级别调成High

    1、反射型XSS,我们按照上面的方法试一试,当用事件触发来攻击,发现结果成功了,跟DOM型中等难度的方法一样

    输入 

     2、存储型XSS攻击

    我们的思路还是从简单开始,发现都