DVWA-XSS (Reflected) 反射性 XSS
反射性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的更多相关文章
- DVWA XSS (Reflected) 通关教程
XSS 介绍XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需 ...
- DVWA靶场实战(十一)——XSS(Reflected)
DVWA靶场实战(十一) 十一.XSS(Reflected): 1.漏洞原理: XSS被称为跨站脚本攻击(Cross Site Script),而Reflected被称作反射型XSS.不同于DOM和S ...
- DVWA全级别之XSS(Reflected)、XSS(Stored)【跨站脚本攻击】
XSS XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强 ...
- XSS Reflected 测试
由于最近在做XSS方面的测试,于是找到了DVWA平台进行实验测试,通过这三篇文章让大家了解XSS方面的大概内容,这三篇文章只是把你领进XSS的大门,要想真正深入的学习XSS,你还需要去学习很多东西来提 ...
- 某大型网络社区传播性XSS分析
某大型网络社区传播性XSS分析 这个XSS存在于天涯某个不起眼的子论坛,通过发布新帖子可以触发. 漏洞分析 论坛针对XSS有一定过滤措施,例如转义单双引号,过滤左右尖括号等等.所 ...
- DVWA(七):XSS(stored)存储型XSS攻击
存储型XSS : 存储XSS,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在.提交JS攻击代码存储到数据库然后再输出. low: 观察源码: <?php if( isset( ...
- 小白日记49:kali渗透测试之Web渗透-XSS(三)-存储型XSS、DOM型XSS、神器BEFF
存储型XSS与DOM型XSS [XSS原理] 存储型XSS 1.可长期存储于服务器端 2.每次用户访问都会被执行js脚本,攻击者只需侦听指定端口 #攻击利用方法大体等于反射型xss利用 ##多出现在留 ...
- [80Sec]深掘XSS漏洞场景之XSS Rootkit
顶80SEC的牛. 深掘XSS漏洞场景之XSS Rootkit[完整修订版] EMail: rayh4c#80sec.com Site: http://www.80sec.com Date: 2011 ...
- Java Web使用过滤器防止Xss攻击,解决Xss漏洞
转: Java Web使用过滤器防止Xss攻击,解决Xss漏洞 2018年11月11日 10:41:27 我欲乘风,直上九天 阅读数:2687 版权声明:本文为博主原创文章,转载请注明出处!有时候 ...
- xss构造--如何使用xss语句
XSS的构造 1.利用[<>]构造html/js 如[<script>alert(/xss/)</script>] 2.伪协议 使用javascript:伪协议来构 ...
随机推荐
- centos7.4离线安装.NETCore3.1 环境
1.在有网的情况下把离线包下载到电脑上sudo yum install --downloadonly --downloaddir=/home/mjb/soft/dotnet-sdk-3.1 dotne ...
- JavaScript垃圾回收机制的了解
对于js种的任意长度字符串,对象,数组是没有固定大小的,只有在分配存储时,解释器就会分配内存来存储这些数据.当js的解释器消耗完系统所有可用内存时,就会造成系统崩溃.因此js有着自己的一套垃圾回收机制 ...
- ubuntu22.04安装mysql5.7
22版本的ubuntu默认安装mysql8.0版本,要想安装5.x的版本就得下载安装,这个比较详细的教程,可以参考: https://www.cnblogs.com/juanxincai/p/1648 ...
- leecode62不同路径(动态规划)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 "Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为 &quo ...
- 可视化 之D3 与echarts 对比以及应用场景
可视化:我们想要看出一组数据的大小关系,单看数据显然不够直观.那么我们可以将它转换为一种简单易懂的图表的形式,就可以更加直观的获取数据所传递给我们的信息.这个过程就叫做数据可视化.可视化常用2个前端库 ...
- 实验一 密码引擎-1-OpenEuler-OpenSSL编译
1. 下载最新的OpenSSL源码 2. 用自己的8位学号建立一个文件夹,cd 你的学号,用pwd获得绝对路径 3. 参考https://www.cnblogs.com/rocedu/p/508762 ...
- 「DIARY」PKUSC2021 小结
另外有一个纯吐槽游记版本的,还没有写完(快写完了,真的) 欢迎各路神仙来吐槽一个菜鸡的考场思路 # Day1 考场小结 总体而言,T1 完全就是送分,做得也挺快的:T2 大概是本场最难的题:然后 T3 ...
- Study python_04
数组 a = [1,2,3] print(a) 数组替换 a = [1,2,3] a[0] = 100 print(a) 数组去重复 def delete_chong(): a = [1,1,2,2, ...
- 2020-2021第一学期2024"DCDD"小组第十周讨论
2020-2021第一学期"DCDD"第十周讨论 小组名称:DCDD 小组成员:20202403孟凡斌.20202411陈书桓.20202416刘铭睿.20202420黄椿淇 照例 ...
- MAC 关闭office自动更新提示
①.先进入到 /Library/Application Support/Microsoft/ 文件夹 (/Library/Application Support/Microsoft/) 点击 前往 - ...