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. HBase学习之路 (七)HBase 原理

    系统架构 错误图解 这张图是有一个错误点:应该是每一个 RegionServer 就只有一个 HLog,而不是一个 Region 有一个 HLog. 正确图解 从HBase的架构图上可以看出,HBas ...

  2. Day2 CSS

    什么是CSS 层叠样式表(cascading style sheet) 控制页面元素的显示方式.(添加样式) CSS语法 行间样式 行内式是在标记的style属性中设定CSS样式.这种方式没有体现出C ...

  3. @SpringBootApplication无法被解析引入

    问题描述:@SpringBootApplication无法被解析引入,导致SpringBoot启动类报错 原因分析:springboot的包冲突了所致 解决方案: 需要删掉 repository\or ...

  4. 初识Qt窗口界面

    1.新建一个新的Qt Gui应用,项目名称随意,例如MyMainWindow,基类选择QMainWindow,类名为MainWindow. 2.项目建立后,双击mainwindow.ui文件,在界面的 ...

  5. servlet使用

    一.使用IDEAL创建项目 1) 2) 3) 4) 5) 6) 7) 8) 9) 二.路径介绍: 配置文件: servlet配置文件: package ser_Test; import javax.s ...

  6. LeetCode559. Maximum Depth of N-ary Tree

    第一次写出了具有迭代和递归的函数,还是有点收获的,虽然题目比较简答 当要对某些对象重复使用时,考虑循环,也就是迭代 当函数可以简化一个重复的操作时,考虑递归,而且就当下一次使用这和函数的结果已经有啦, ...

  7. K2 4.7 升级 数据库排序规则更改

    介绍 在过去,K2没有指定安装过程中要在其数据库上使用的标准排序规则.然而,现在K2引入了标准排序规则,以便在之后使用(如果我没有错的话,它是在4.7). 因此, 问题出现在数据库的排序规则不是Lat ...

  8. iOS开发用如何用类"SKStoreProductViewController"跳转AppStore点赞评分?

    大家都知道,评论和评分是决定app在appstore中排名的重要因素,但是大部分用户下载安装APP后却不会去点评,所以添加提示用户去点评的功能是很必要的. 目前,AppStore点赞评分有两种方法,一 ...

  9. js动态生成水印

    原理:通过动态生成canvas然后转为base64格式 代码Demo export const waterMark = (text) =>{ let _wm = document.createE ...

  10. Java开发工程师基础Math,Random,Scanner类的使用

    Math类的使用(重点) (1)数学操作类:该类没有构造函数,方法均为静态的 (2)掌握内容 A:成员变量 **E:比任何其他值都更接近e(即自然对数的底数)的double值. **PI:比任何其他值 ...