当前位置: 首页 > news >正文

DVWA-XSS(Reflected)

反射型XSS可以用来窃取cookie

Low

输入1111进行测试,发现1111被打印
在这里插入图片描述
输入<script>alert(document.cookie)</script>,出现弹窗,获得cookie
在这里插入图片描述

Medium

查看后端代码,发现对<script>进行了转义,但是可以通过双写,大小写等进行绕过

<?phpheader ("X-XSS-Protection: 0");// 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$html .= "<pre>Hello {$name}</pre>";
}?>

High

观察后端代码,“*” 代表一个或多个任意字符,“i” 代表不区分大小写,<script>标签被完全过滤。但是我们可以通过其他的标签例如 img、body 等标签的事件注入。
参考XSS Payload List

<?phpheader ("X-XSS-Protection: 0");// 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$html .= "<pre>Hello {$name}</pre>";
}?>

eg:<img src = 1 onerror = alert(document.cookie)>
在这里插入图片描述

Impossible

观察后端代码使用 htmlspecialchars 函数将参数中的特殊字符(如 <, >, &, " 等)转换为 HTML 实体。

<?php// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );// Get input$name = htmlspecialchars( $_GET[ 'name' ] );// Feedback for end user$html .= "<pre>Hello {$name}</pre>";
}// Generate Anti-CSRF token
generateSessionToken();?>

我们打印一下输入<script>alert(document.cookie)</script>转义后的字符串
在这里插入图片描述
这样浏览器会将其作为普通文本显示,而不是执行。

防御

1.http-only禁止js语句获取cookie
2.过滤输入的字符,例如 “ ’ ”,“ " ”,“<”,“>” 等非法字符;
3.对输入到页面的数据进行编码

http://www.lryc.cn/news/364527.html

相关文章:

  • Python自动化办公2.0 即将发布
  • 【面试宝藏】Redis 常见面试题解析其二
  • 智慧公厕厂家+智能厕所小程序,构建数字化公厕新体系
  • 使用迁移助手 (SSMA for Oracle) 将Oracle19c数据库迁移到SQL Server2022
  • LabVIEW开发EOL功能测试系统
  • Java finally catch try关键字
  • docker安装mysql8和mysql5.7
  • 通过一个例子,说明Python的责任链设计模式有什么优缺点
  • 场地预定小程序基于FastAdmin+UniApp
  • CrossPrefetch: Accelerating I/O Prefetching for Modern Storage——论文泛读
  • 详解 Spark Streaming 的 DStream 对象
  • QT常用控件
  • 如何解决chatgpt出现503 bad gateway的问题
  • Halcon 双相机标定与拼图(二)
  • 【加密与解密】【04】Java安全架构
  • 论文阅读:Neural Scene Flow Prior
  • 如何通过 6 种简单方法将照片从华为转移到 PC?
  • QtCharts使用
  • 深入分析 Flink SQL 工作机制
  • Spring Bean参数校验Validator
  • AOP案例
  • Facebook海外户Facebook广告被暂停的原因
  • 网站企业需要适用于什么服务器?
  • winscp无法上传,删除,修改文件并提示权限不够的分析
  • Hadoop3:MapReduce之InputFormat数据输入过程整体概览(0)
  • 【Leetcode Python】70.爬楼梯
  • 深度学习 - 张量的广播机制和复杂运算
  • 【CSS】will-change 属性详解
  • linux安装mysql后,配置mysql,并连接navicat软件
  • 【学习笔记】Axios、Promise