DVWA-XSS(DOM)

Low

后端没有代码,点击select按钮动作是前端的JS代码进行处理的


function addEventListeners() {
	var source_button = document.getElementById ("source_button");

	if (source_button) {
		source_button.addEventListener("click", function() {
			var url=source_button.dataset.sourceUrl;
			popUp (url);
		});
	}

	var help_button = document.getElementById ("help_button");

	if (help_button) {
		help_button.addEventListener("click", function() {
			var url=help_button.dataset.helpUrl;
			popUp (url);
		});
	}
}

addEventListeners();

我们点击select之后,在URL后面加入<script>alert(123)</script>后,观察页面源码发现payload被插入到了前端界面中执行
在这里插入图片描述

Medium

观察后端代码进行了<script和大小写过滤,这里考虑闭合绕过

<?php

// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {
	$default = $_GET['default'];
	
	# Do not allow script tags
	if (stripos ($default, "<script") !== false) {
		header ("location: ?default=English");
		exit;
	}
}

?>

将payload改为</option></select><img src = 1 onerror = alert('123')>实现闭合
在这里插入图片描述

High

后端进行白名单过滤

<?php

// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {

	# White list the allowable languages
	switch ($_GET['default']) {
		case "French":
		case "English":
		case "German":
		case "Spanish":
			# ok
			break;
		default:
			header ("location: ?default=English");
			exit;
	}
}

?>

但是可以通过注释符#绕过,注释符后面的内容不会发送到服务器

English#<script>alert('123')</script>

Impossible

后端没有代码,观察前端代码
impossible level没有设置解码
在这里插入图片描述
按之前Low level注入的话,结果如下
在这里插入图片描述

防御

2.过滤输入的字符,例如 “ ’ ”,“ " ”,“<”,“>” 等非法字符;
3.对输入到页面的数据进行编码

相关推荐

  1. <span style='color:red;'>DVWA</span>-CSRF

    DVWA-CSRF

    2024-06-07 23:22:06      25 阅读
  2. DVWA csrf代码分析

    2024-06-07 23:22:06       49 阅读
  3. DVWA下半部分

    2024-06-07 23:22:06       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 23:22:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 23:22:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 23:22:06       87 阅读
  4. Python语言-面向对象

    2024-06-07 23:22:06       96 阅读

热门阅读

  1. 安全测试 之 安全漏洞 :XSS

    2024-06-07 23:22:06       24 阅读
  2. 【杂记-浅谈XSS跨站脚本攻击】

    2024-06-07 23:22:06       32 阅读
  3. XSS 跨站脚本攻击预防(文件上传)

    2024-06-07 23:22:06       30 阅读
  4. cpprestsdk https双向认证小测

    2024-06-07 23:22:06       32 阅读
  5. Qt 中QList、QListIterator 、QMutableListIterator、QMap用法

    2024-06-07 23:22:06       28 阅读
  6. gitleb详细的搭建步骤

    2024-06-07 23:22:06       34 阅读
  7. Tomcat 启动闪退问题解决方法

    2024-06-07 23:22:06       28 阅读
  8. 负载均衡加权轮询算法

    2024-06-07 23:22:06       29 阅读
  9. Nginx 实战-03-nginx 负载均衡

    2024-06-07 23:22:06       30 阅读
  10. Spark大数据 Spark运行架构与原理

    2024-06-07 23:22:06       32 阅读
  11. cesium 之 flyTo、setView、lookat

    2024-06-07 23:22:06       29 阅读
  12. Python基础总结之functools.partial

    2024-06-07 23:22:06       24 阅读
  13. LeetCode hot100-64-Y

    2024-06-07 23:22:06       31 阅读