xsschallenge1~13通关详细教程

文章目录

  • XSS 挑战靶场通关
    • level1
    • level2
    • level3
    • level4
    • level5
    • level6
    • level7
    • level8
    • level9
    • level10
    • level11
    • level12
    • level13

XSS 挑战靶场通关

level1

通过观察发现这个用户信息可以修改

image-20230825112715130

那么我们直接输入攻击代码

<script>alert(/wuhu/)</script>

image-20230825112631264

弹框如下:

image-20230825112639569

level2

发现一个输入框,输入攻击代码观察页面反应

image-20230825113247834

页面将我们的攻击代码进行了打印。

查看网页源代码,发现将我们输入的尖括号进行了转义。

image-20230825113348614

源码

image-20230825163521369

htmlspecialchars(string): 把预定义的字符: “<” (小于)、 “>” (大于)、& 、‘’、“” 转换为HTML实体,防止浏览器将其作为HTML元素。

impossible级别的代码先判断name是否为空,不为空的话然后验证其token,来防范CSRF攻击。然后再用htmlspecialchars函数将name中的预定义字符 “<” (小于)和 “>” (大于)转换成html实体,这样就防止了填入标签。

预定义的字符如下:

& 成为 &amp
" 成为 &quot
' 成为 &#039
< 成为 &lt
> 成为 &gt

这里我们可以闭合该value参数,添加一个onclick属性

onclick 是一个 HTML 属性,用于在用户点击(或触摸)指定的 HTML 元素时触发相应的 JavaScript 代码。

image-20230825114118963

那么我们可以构造其他攻击代码

" οnclick="alert(99)"

image-20230825114044659

闭合input标签,将语句独立出来

"><script>alert(/xss/)</script>

image-20230825165638485

image-20230825114019684

level3

查看网页源代码,发现该闭合方式是单引号

image-20230825115155169

构造我们的攻击代码

' onclick='alert(/wuhu/) 

image-20230825115406223

level4

查看页面源代码

image-20230825115531652

发现闭合方式是双引号闭合。

构造我们的攻击代码

" onclick="alert(/wuhu/)

image-20230825115559585

level5

注入我们的攻击代码

" οnclick="alert(/wuhu/)

页面没有反应

image-20230825115740187

查看页面源代码

image-20230825145716156

这里将我们输入的事件onclick的on之间添加了下划线。

试一下<script>标签是否可以

<script>alert(/wuhu/)</script>

同样页面没有弹框,查看页面源代码,发现<script>标签也被添加了下划线。

image-20230825172029784

这里就无法使用事件了,可以使用伪协议,闭合方式为双引号。

构造攻击代码如下:

先将input标签闭合,然后构造超链接标签

"> <a href="javascript:alert(/xss/)">芜湖</a>

image-20230825172617210

成功弹框

image-20230825151428802

level6

先输入攻击代码查看页面响应

<script>alert(/wuhu/)</script>

image-20230825172936196

查看页面源码,发现script标签被添加了下划线。

image-20230825173002868

使用响应事件来构造攻击代码

<a href = "#"  onclick = 'alert(/wuhu/)'>click me!</a>

同样页面没有响应,查看页面源代码,发现响应事件被添加了下划线。

image-20230825173634872

使用伪协议来构造攻击代码

<a href = "javascript:alert(/xss/)">click me!</a>

同样页面没有响应,查看页面源代码,发现href被添加了下划线。

image-20230825173343773

image-20230825174615593

采用大小写绕过的方式构造攻击代码:

"> <SCRIPT>alert(/wuhu/)</SCRIPT>

image-20230825174456572

level7

先输入攻击代码查看页面响应

<script>alert(/wuhu/)</script>

页面没有响应,查看页面源代码,发现我们的script标签被替换为空了。

image-20230825174808833

查看源码

image-20230825185811433

源码中将script,on,src,data,href标签及属性转换为空。这里可以先使input便签进行闭合,再双写script进行绕过。

构造攻击代码:

"> <scrscriptipt>alert(/xss/)</scrscriptipt>
" oonnclick="alert(/wuhu/)

image-20230825185739454

level8

先输入攻击代码查看页面响应

<script>alert(/wuhu/)</script>

页面没有响应,查看页面源代码

image-20230825190449029

发现将我们构造的攻击代码放到了a标签中,并且给script标签添加了下划线。

查看源码

image-20230825190943469

这里将script,on,src,data,href,“进行了过滤,并且在尝试的时候关键字双写不管用。那么这里直接选择不去闭合标签,直接使用伪协议,但是发现javascript也被拆开了。这里可以对伪协议中的字母进行转码。

构造攻击代码:

javasc&#x72;&#x69pt:alert(/xss/)

image-20230825191629996

level9

发现这关和上一关中的页面差不多,使用上一关构造的攻击代码

javasc&#x72;&#x69pt:alert(/xss/)

页面没有任何响应,查看页面源代码

image-20230825193154712

查看源码

image-20230825192322280

先写一个正确的链接,然后点击友情链接,页面可以正常跳转

image-20230825193718767

查看页面源代码,这里显示出正常了链接地址。

image-20230825193835682

源代码

image-20230825194442563

这里查看我们注入的代码中是否有http://,如果包含则执行else中的语句,将我们构造的攻击代码输入到href中,如果不包含则在a标签中的href显示指定字符串。

strpos — 查找字符串首次出现的位置。

构造攻击d代码,将http://加入到alert的()中。

javasc&#x72;&#x69pt:alert('http://')

image-20230825194306352

level10

先输入攻击代码查看页面响应

http://127.0.0.1/xsschallenge/level10.php?keyword=<script>alert(/wuhu/)</script>

image-20230825195538217

页面没有任何反应,查看网页源代码,发现了三个隐藏的输入框参数分别为t_link,t_history,t_sort。

image-20230825201321062

尝试给这三个参数赋值

image-20230825202843388

发现只有t_sort有值

image-20230825202902647

查看源代码

image-20230825203102415

这里对左右尖括号进行了过滤

那么我们采用给t_sort赋值的方式注入攻击代码:

t_sort=" type="text" onclick = "alert(/xss/)

image-20230825203713782

查看页面源代码,将之前隐藏的输入框显示出来,并且添加了一个数据鼠标点击事件。

image-20230825203942686

然后点击输入框后弹框

image-20230825203733373

level11

image-20230825204534435

和level10相似,直接查看网页源代码

image-20230825204627076

分别给t_link,t_history和t_sort赋值

image-20230825205259915

发现还是只有t_sort有值

按照上一关的思路进行构造攻击代码

t_sort=" type="text" onclick = "alert(/xss/)

页面还是没有反应,查看源代码

image-20230825205430630

发现提交给t_sort的参数被过滤了。

查看源码,既然t_sort不行,这里尝试使用t_ref参数。

image-20230825210732688

t_ref中的value参数获取的是 s t r 33 , str33, str33str33变量获取的是 s t r 22 , str22, str22str22变量获取的是 s t r 11 , str11, str11str11变量获取的是HTTP_PEFERER参数。

修改Referer字段,在该字段构造我们的攻击代码

" type="text" onclick = "alert(/xss/)

image-20230825211959390

点击输入框

image-20230825212645972

弹框如下

image-20230825212653017

level12

查看源代码

image-20230825212924543

发现这次传递的是USER_AGENT参数

修改USER_AGENT字段,在该字段构造我们的攻击代码

" type="button" onclick = "alert(/xss/)

image-20230825213109998

点击页面中的按钮,弹框如下

image-20230825213125088

level13

查看源代码

image-20230825213211120

发现这次传递的是COOKIE参数

修改COOKIE字段,在该字段构造我们的攻击代码

" type="button" onclick = "alert(/xss/)

image-20230825213400285

点击页面中的输入框,弹框如下

image-20230825213410007

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/95462.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

树与图c++

1.树 前言 本文主要介绍的数据结构之树型结构的相关知识&#xff0c;树型数据结构是面试官面试的时候非常喜欢考的一种数据结构&#xff0c;树形结构的遍历也是大厂笔试非常喜欢设置的考点&#xff0c;这些内容都会在本篇文章中进行详细的介绍&#xff0c;并且还会介绍一些常…

线程安全-搞清synchronized的真面目

多线程编程中&#xff0c;最难的地方&#xff0c;也是最重要的一个地方&#xff0c;还是一个最容易出错的地方&#xff0c;更是一个特别爱考的地方&#xff0c;就是线程安全问题。 万恶之源&#xff0c;罪魁祸首&#xff0c;多线程的抢占式执行,带来的随机性. 如果没有多线程,此…

【VRRP】虚拟路由冗余协议

什么是VRRP&#xff1f; 虚拟路由冗余协议VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于提高网络可靠性的容错协议。通过VRRP&#xff0c;可以在主机的下一跳设备出现故障时&#xff0c;及时将业务切换到备份设备&#xff0c;从而保障网络通信的…

Redis基础知识

Redis基础知识 redis共有16个数据库&#xff0c;默认使用的是第0个 可以使用select进行切换数据库 # 切换数据库 127.0.0.1:6379> select 1 OK # 查看DB大小 127.0.0.1:6379[1]> DBSIZE (integer) 0查看当前数据库所有的key 127.0.0.1:6379> keys * #查看当前数据…

Mybatis查询数据

上一篇我们介绍了在pom文件中引入mybatis依赖&#xff0c;配置了mybatis配置文件&#xff0c;通过读取配置文件创建了会话工厂&#xff0c;使用会话工厂创建会话获取连接对象读取到了数据库的基本信息。 如果您需要对上面的内容进行了解&#xff0c;可以参考Mybatis引入与使用…

【业务功能篇87】微服务-springcloud-本地缓存-redis-分布式缓存-缓存穿透-雪崩-击穿

一、缓存 1. 什么是缓存 缓存的作用是减低对数据源的访问频率。从而提高我们系统的性能。 缓存的流程图 2.缓存的分类 2.1 本地缓存 其实就是把缓存数据存储在内存中(Map <String,Object>).在单体架构中肯定没有问题。 单体架构下的缓存处理 2.2 分布式缓存 在分布式环…

Java学习笔记31——字符流

字符流 字符流为什么出现字符流编码表字符串中的编码解码问题字符流写数据的5中方式字符流读数据的两种方式字符流复制Java文件 字符流 为什么出现字符流 汉字的存储如果是GBK编码占用2个字节&#xff0c;如果是UTF-8占用三个字节 用字节流复制文本文件时&#xff0c;文本文…

2023年腾讯云轻量应用服务器优缺点大全

2023年腾讯云轻量应用服务器优缺点大全&#xff0c;腾讯云轻量应用服务器性能如何&#xff1f;轻量服务器CPU内存带宽配置高&#xff0c;CPU采用什么型号主频多少&#xff1f;轻量应用服务器会不会比云服务器CVM性能差&#xff1f;腾讯云服务器网详解CPU型号主频、内存、公网带…

Linux通过libudev获取挂载路径、监控U盘热拔插事件、U盘文件系统类型

文章目录 获取挂载路径监控U盘热拔插事件libusb 文件系统类型通过挂载点获取挂载路径添libudev加库 获取挂载路径 #include <stdio.h> #include <libudev.h> #include <string.h>int main() {struct udev *udev;struct udev_enumerate *enumerate;struct ud…

数据库备份和Shell基础测试及AWK(运维)

第一题&#xff1a;简述一下如何用mysql命令进行备份和恢复&#xff0c;请以test库为例&#xff0c;创建一个备份&#xff0c;并再用此备份恢复备份 备份步骤&#xff1a; 备份test库&#xff1a;使用mysqldump命令备份test库&#xff0c;并将备份写入一个.sql文件中。命令示例…

【第1章 数据结构概述】

目录 一. 基本概念 1. 数据、数据元素、数据对象 2. 数据结构 二. 数据结构的分类 1. 数据的逻辑结构可分为两大类&#xff1a;a. 线性结构&#xff1b;b. 非线性结构 2. 数据的存储结构取决于四种基本的存储方法&#xff1a;顺序存储、链接存储、索引存储、散列存储 3. …

【力扣每日一题】2023.8.24 统计参与通信的服务器

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目顾名思义&#xff0c;要我们统计参与通信的服务器&#xff0c;给我们一个二维矩阵&#xff0c;元素为1的位置则表示是一台服务器。 …

学习Linux基础知识与命令行操作

开始学习Linux系统前&#xff0c;首先要掌握计算机基础知识&#xff0c;了解硬件、操作系统、文件系统、网络和安全等概念。对这些基础知识的了解能够帮助理解Linux系统的概念和功能。 在Linux系统中&#xff0c;文件和目录是数据管理的基本单位。每个文件和目录都有一个称为&…

OAuth2.0 知识点梳理

文章目录 OAuth2.0 知识点梳理一、四种角色二、四种模式的概述三、四种模式的图解 OAuth2.0 知识点梳理 一、四种角色 为了能够更好的理解本文中后续的内容&#xff0c;这里我先说下&#xff0c;OAuth2.0 中相关的四种角色&#xff0c;如下&#xff1a; 资源拥有者资源服务客…

内网实战1

1、信息收集&#xff1a; 使用nmap做端口扫描&#xff1a; nmap -sV -Pn -T4 192.168.26.174重要端口&#xff1a;80、445、139、135、3306 目录扫描&#xff1a; 访问80端口&#xff1a;发现一个网站是phpstudy搭建的&#xff1b; 发现一个mysql数据库&#xff0c;那我们…

[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口

需求&#xff1a;speedcrunch 这个软件是开源的计算器软件。配合launch类软件使用时&#xff0c;忘记关闭就经常很多窗口&#xff0c;强迫症&#xff0c;从网上搜索对版本进行了修改。 #include "gui/mainwindow.h"#include <QCoreApplication> #include <…

CocosCreator3.8研究笔记(一)windows环境安装配置

一、安装Cocos 编辑器 &#xff08;1&#xff09;、下载Cocos Dashboard安装文件 Cocos 官方网站Cocos Dashboard下载地址 &#xff1a; https://www.cocos.com/creator-download9下载完成后会得到CocosDashboard-v2.0.1-win-082215.exe 安装文件&#xff0c;双击安装即可。 …

智能工厂移动式作业轻薄加固三防平板数据采集终端

在这个高度自动化和数字化的环境中&#xff0c;数据采集变得尤为重要。为了满足这个需求&#xff0c;工业三防平板数据采集终端应运而生。工业三防平板数据采集终端采用了轻量级高强度镁合金材质&#xff0c;这使得它在保持轻薄的同时具有更强的坚固性。这种材质还具有耐磨防损…

机器学习笔记之核函数再回首:Nadarya-Watson核回归python手写示例

机器学习笔记之核函数再回首——Nadaraya-Watson核回归手写示例 引言回顾&#xff1a; Nadaraya-Watson \text{Nadaraya-Watson} Nadaraya-Watson核回归通过核函数描述样本之间的关联关系使用 Softmax \text{Softmax} Softmax函数对权重进行划分将权重与相应标签执行加权运算 N…

自动化测试(三):接口自动化pytest测试框架

文章目录 1. 接口自动化的实现2. 知识要点及实践2.1 requests.post传递的参数本质2.2 pytest单元测试框架2.2.1 pytest框架简介2.2.2 pytest装饰器2.2.3 断言、allure测试报告2.2.4 接口关联、封装改进YAML动态传参&#xff08;热加载&#xff09; 2.3 pytest接口封装&#xff…