Lab: Reflected DOM XSS:反射型DOM XSS

2023-10-25 11:10
文章标签 反射 xss dom lab reflected

本文主要是介绍Lab: Reflected DOM XSS:反射型DOM XSS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本实验演示了一个反射 DOM 漏洞。当服务器端应用程序处理来自请求的数据并在响应中回显数据时,就会出现反射 DOM 漏洞。然后页面上的脚本以不安全的方式处理反射数据,最终将其写入危险的接收器。

为了解决这个实验,创建一个调用alert()函数的注入。

解决实验:

  • 在 Burp Suite 中,转到代理工具并确保打开了拦截功能。
  • 回到实验室,转到目标网站并使用搜索栏搜索随机测试字符串,例如. "XSS"
  • 返回 Burp Suite 中的代理工具并转发请求。
  • 在 Intercept 选项卡上,请注意该字符串反映在名为 的 JSON 响应中search-results。image
  • 从站点地图中,打开searchResults.js文件并注意 JSON 响应与eval()函数调用一起使用。image
  • 通过尝试不同的搜索字符串,您可以确定 JSON 响应正在转义引号。但是,反斜杠没有被转义。image
  • 要解决此实验,请输入以下搜索词: "-alert(1)}//
    由于您已注入反斜杠并且站点并未转义它们,因此当 JSON 响应尝试转义开头的双引号字符时,它会添加第二个反斜杠。由此产生的双反斜杠导致转义被有效地取消。这意味着双引号被处理为未转义,这会关闭应包含搜索词的字符串。

然后在alert()调用函数之前使用算术运算符(在这种情况下为减法运算符)来分隔表达式。最后,一个结束的大括号和两个正斜杠提前关闭 JSON 对象并注释掉对象的其余部分。结果,生成的响应如下:

{"searchTerm":"\"-alert(1)}//", "results":[]}

image

这篇关于Lab: Reflected DOM XSS:反射型DOM XSS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/282171

相关文章

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

【反射知识点详解】

Java中的反射(Reflection)是一个非常强大的机制,它允许程序在运行时检查或修改类的行为。这种能力主要通过java.lang.reflect包中的类和接口来实现。 通过反射,Java程序可以动态地创建对象、调用方法、访问字段,以及获取类的各种信息(如构造器、方法、字段等)。 反射的用途 反射主要用于以下几种情况: 动态创建对象:通过类的Class对象动态地创建其实例。访问类的字段

Go 在orm中使用反射

作为静态语言,golang 稍显笨拙,还好 go 的标准包reflect(反射)包弥补了这点不足,它提供了一系列强大的 API,能够根据执行过程中对象的类型来改变程序控制流。本文将通过设计并实现一个简易的 mysql orm 来学习它,要求读者了解mysql基本知识,并且跟我一样至少已经接触 golang 两到三个月。 orm 这个概念相信同学们都非常熟悉,尤其是写过rails的同学,对acti

类型信息:反射-Class

在说反射前提一个概念:RTTI(在运行时,识别一个对象的类型) public class Shapes {public static void main(String[] args) {List<Shape> shapes = Arrays.asList(new Circle(), new Square(), new Triangle());for (Shape shape : shapes

17 通过ref代替DOM用来获取元素和组件的引用

重点 ref :官网给出的解释是: ref: 用于注册对元素或子组件的引用。引用将在父组件的$refs 对象下注册。如果在普通DOM元素上使用,则引用将是该元素;如果在子组件上使用,则引用将是组件实例: <!-- vm.$refs.p will be the DOM node --><p ref="p">hello</p><!-- vm.$refs.child will be the c

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

xss-labs-master通关教程

一.level1 先来进行一下代码审计 <?php ini_set("display_errors", 0);//关闭错误显示$str = $_GET["name"]; //接受URL来的get形式的name传参echo "<h2 align=center>欢迎用户".$str."</h2>";//在网页输出,并不是echo执行的,而是echo把HTML代码发送到浏览器,浏览器对发送的H

DOM 添加节点

DOM 添加节点 在Web开发中,文档对象模型(DOM)是一个非常重要的概念。DOM是HTML和XML文档的编程接口,它将文档表示为节点树,允许开发人员通过JavaScript等脚本语言进行操作。在本文中,我们将探讨如何在DOM中添加节点,包括各种方法和最佳实践。 DOM节点简介 在DOM中,文档的每一个部分都是一个节点。主要的节点类型包括: 元素节点:HTML标签,例如<div>或<sp

js操作Dom节点拼接表单及ajax提交表单

有时候我们不希望html(jsp、vm)中有创建太多的标签(dom节点),所以这些任务都由js来做,下面提供套完整的表单提交流程,只需要在html中添加两个div其余的都由js来做吧。下面原生代码只需略微修改就能达到你想要的效果。 1、需要创建表单的点击事件 <a href="javascript:void(0);"onclick="changeSettleMoney('$!doctor.do