1.反射型

LOW:

没有过滤,直接键入PAYLOAD

查看源码

这里没有任何过滤,使用htmlspecialchars()过滤

结果不弹窗

MEDIUM:

LOW等级的方法不奏效了

观察输出可能是过滤了<script>标签

审查元素发现确实过滤了<script>标签

使用大小写混写绕过 <scrIpt>alert(1)</sCript>

查看代码发现只过滤了<script>

而且只过滤了一次,所以可以嵌套<script>绕过

<scr<script>ipt>alert(1)</scrip<script>t>

还可以使用htmlspecialchars()过滤

HIGH:

MEDIUM也不会弹窗了

发现发生了过滤,而且script都被过滤了

输入<img src=1 onerror=alert(1)>

查看源码,发现仅仅是过滤了script

过滤时不推荐使用黑名单,基本上总有办法绕过

IMPOSSIBLE:

发现输入的代码变成了HTML实体查看源码发现使用了htmlspecialchars处理,并且使用了token,防止了CSRF

2.存储型

LOW:

这里Name的maxlength是10,可以审查元素给修改成大的值

输入<script>alert(1)</script>弹窗出现两次,说明在Name和Message处都存在存储型XSS

查看源码发现只是去除了两端的空白字符

使用htmlspecialchars处理

MEDIUM:

使用LOW的PAYLOAD已经不行了

还是过滤了script

在Name处成功弹窗,Message处被过滤了

查看源码

HIGH:

查看源码

IMPOSSIBLE:

直接看源码

对name,message都过滤了

3.DOM型

LOW:

直接弹窗

查看源码

emmm..毛都没有..

MEDIUM:

输入PAYLOAD

发现没有弹窗,查看元素

发现在<option>标签里,再次尝试一次,这次闭合<option>标签

还是没又弹窗,中再次查看元素

再次向上闭合<select>标签

成功弹窗

查看源码

如果出现<script,会重定向到English

HIGH:

输入MEDIUM的PAYLOAD

发现重定向到English了

URL中 #后面的字符会被当做定位标识符,所以不会被传递给服务器,只与浏览器交互,而DOM型XSS也是只与浏览器交互

所以尝试#,修改完#之后,浏览器不会重载,需要手动刷新

审查元素

剩下就是类似于MEDIUM等级,闭合标签

查看源码

只允许French,English,German,Spanish四种语言

IMPOSSIBLE:

直接看源码

告诉我们代码防御在客户端

查看index.php

如果是impossible等级的,不会解码URL,直接置为空,并不会进行解码

果然没有解码

将上面代码注释

注意:

防御XSS即使用了htmlspecialchars,只要我们在前端又进行了操作

也可能有危险,请看下面的例子

<html>

<?php
$a=htmlspecialchars($_GET['id']);
//$a=$_GET['id'];
echo 'id: '.$a;
echo '</br>';
echo 'urldecodeId: '.urldecode($a);
echo '</br>';
?>

html: <input type='text' value="<?=$a?>"/>
<br/>

<script>
    var lang = document.location.href.substring(document.location.href.indexOf("id="));
    document.write('JS: '+lang);
    document.write('<br/>');
    document.write('decodeURI: '+decodeURI(lang));
</script>

</html>

最后的转码会造成XSS

 

XSS-DVWA的更多相关文章

  1. DVWA之DOM XSS(DOM型跨站脚本攻击)

    目录 Low Medium High Impossible Low 源代码: <?php # No protections, anything goes ?> 从源代码可以看出,这里low ...

  2. DVWA 黑客攻防演练(十一) 存储型 XSS 攻击 Stored Cross Site Scripting

    上一篇文章会介绍了反射型 XSS 攻击.本文主要是通过 dvwa 介绍存储型 XSS 攻击.存储型 XSS 攻击影响范围极大.比如是微博.贴吧之类的,若有注入漏洞,再假如攻击者能用上一篇文章类似的代码 ...

  3. 如何发起、防御和测试XSS攻击,我们用DVWA来学习(下)

    上一篇我们了解了XSS攻击的原理,并且利用DVWA尝试了简单的XSS攻击,这一篇我们来实现更复杂的攻击,然后探讨防御机制和测试理念. 前面我们通过脚本注入让网页弹出了用户cookie信息,可以光弹窗是 ...

  4. 如何发起、防御和测试XSS攻击,我们用DVWA来学习(上)

    XSS 全称Cross Site Scripting 即‘跨站脚本攻击’. 从其中文释义我们能直观的知道,这是一种对网站的攻击方式. 其原理在于,使用一切可能手段,将可执行脚本(scripting)植 ...

  5. 反射型XSS+文件上传+CSRF—DVWA

    在学习的过程中,想到将几种漏洞进行组合练习,记录下学习过程.大佬请绕过!谢谢!! 测试环境:DVWA,安装方法参考上一篇:https://www.cnblogs.com/aq-ry/p/9220584 ...

  6. 1.4 DVWA亲测XSS漏洞

    首先需要有配置好的DVWA环境,像下图这样   其中: XSS (DOM) :  DOM型XSS漏洞 XSS (Reflected) : 反射性XSS漏洞  XSS (Stored) :  存储型XS ...

  7. DVWA XSS (Reflected) 通关教程

    XSS 介绍XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需 ...

  8. DVWA XSS (Stored) 通关教程

    Stored Cross Site Scripting 存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户 ...

  9. DVWA XSS (DOM) 通关教程

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

  10. XSS漏洞初窥(通过dvwa平台进测试)

    xss的全称是:Cross Site Script,中文名叫“跨站脚本攻击”,因为和CSS重名,所以改名XSS.作为一个网站是肯定要和用户有交互的,那么肯定就伴随着信息的输入输出,而利用xss就是通过 ...

随机推荐

  1. Java基础加强之集合

    集合整体框架图 各集合框架的概述 1. Collection(常用List和Set,不常用Queue和Vector),单元素集合. 2. Map(常用HashMap和TreeMap,不常用HashTa ...

  2. Spring Cloud Eureka 学习记录

    SpringCloud版本 <groupId>org.springframework.cloud</groupId> <artifactId>spring-clou ...

  3. flex布局中flex-shrink的计算规则

    下面代码来自MDN html部分: <p>the width of content is 500px, flex-basic of flex item is 120px.</p> ...

  4. SSM框架之关于使用JSP作为视图展示问题解决方案

    JSP作为视图层展示数据,已经有很长一段时间了,不管是在校学习还是企业工作,总会或多或少接触这个.特别是对于一些传统中小型或者一些几年前的企业而言,有很多使用JSP作为视图展示层. JSP本质是就是S ...

  5. Debian 8 安装 Qt5 和 go-qml

    一.安装相关依赖 ~ ᐅ sudo apt-get install build-essential libgl1-mesa-dev ~ ᐅ sudo apt-get install qt5-defau ...

  6. typename在C++中的用法

    . //在C++中typename一般用来声明模板的模板参数(template parameter): template<typename T> class X; //T是一个模板参数 . ...

  7. Quartz.NET+Topshelf 创建Windows服务

    由于项目开发中经常会有定时任务执行的需求,所以会第一时间就想到 windows 服务 的方式,但是做过开发的同学都知道windows服务不利于调试,安装也麻烦: 并且有开源的作业框架Quartz.NE ...

  8. 腾讯云Mac图床插件

    背景 随着博客越写越多,难免会遇到需要插入图片来说明的情况. 图床选择 首先调研了市面上的图床服务,本着稳定长期的目标,过滤掉了打一枪换一个地方的野鸡小网站,剩余比较靠谱的优缺点如下. 图床 优点 缺 ...

  9. PHP DES加解密

    test.php测试文件 <?php require_once('Des.php'); $des = new Des(); $data['a'] = 'a'; $data['b'] = 'b'; ...

  10. 详解 Python3 正则表达式(五)

    上一篇:详解 Python3 正则表达式(四) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些注明和修改 ^_^ 非捕获组和命名 ...