xsschallenge1~13通关详细教程

news2024/11/23 7:50:18

文章目录

  • 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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

烟花厂人员作业释放静电行为检测算法

烟花厂人员作业释放静电行为检测算法通过pythonyolo系列算法模型框架&#xff0c;烟花厂人员作业释放静电行为检测算法在工厂车间入口处能够及时捕捉到人员是否触摸静电释放仪。一旦检测到人员进入时没有触摸静电释放仪&#xff0c;系统将自动触发告警。Python是一种由Guido va…

第 1 章 绪论(计算多项式)

示例代码 1&#xff1a; /* 计算 1 - 1 / x 1 / x * x - ... */#include <stdio.h> #include <sys/timeb.h>int main(void) {double x;int n;printf("Please input x and n: ");scanf_s("%lf%d", &x, &n);struct timeb t1;ftime(&…

2023.8.27 关于 Junit5 详解

目录 引言 注解 断言 用例的执行顺序 参数化 测试套件 引言 Junit 是一个基于Java语言的单元测试框架Selenium 是一个用于Web应用程序测试的自动化测试框架结合二者能让我们的 Web自动化测试 更加完善和全面 注意&#xff1a; 本文所讲的内容&#xff0c;均基于以下依…

机器视觉工程师永不为奴,他们是肯干肯出差肯加班肯拼命肯被使唤肯被叼

​ 永不为奴&#xff0c;为什么这样呐喊&#xff0c;真的很难做到。我们职业机器视觉工程师&#xff0c;本身职业具有一大特点就是专业性。 但是我们机器视觉工程师是专业技术绝不苟同于不是技术人员言语&#xff0c;我们很专业。 肯出差&#xff1a; 设备去那里&#xff0c;…

启莱OA CloseMsg.aspx SQL注入

子贡曰&#xff1a;“贫而无谄&#xff0c;富而无骄&#xff0c;何如&#xff1f;”子曰&#xff1a;“可也。未若贫而乐&#xff0c;富而好礼者也。” 子贡曰&#xff1a;“《诗》云&#xff1a;‘如切如磋&#xff0c;如琢如磨。’其斯之谓与&#xff1f;”子曰&#xff1a;“…

mybatis plus新版代码生成器,类型转换处理器ITypeConvertHandler使用

目录 引言关键代码源码分析记录一坑类型转换的第二种方式完整源码地址 引言 当默认生成的数据类型不满足时&#xff0c;就需要自定义指定要生成的类型 关键代码 FastAutoGenerator.create(url, username, password).dataSourceConfig(builder -> {builder.typeConvertHandl…

Python计算加速利器

迷途小书童的 Note 读完需要 6分钟 速读仅需 2 分钟 1 简介 Python 是一门应用非常广泛的高级语言&#xff0c;但是&#xff0c;长久以来&#xff0c;Python的运行速度一直被人诟病&#xff0c;相比 c/c、java、c#、javascript 等一众高级编程语言&#xff0c;完全没有优势。 那…

记一次因函数入参没有带类型所引发的问题

工作中&#xff0c;sit测试中&#xff0c;测试突然发现页面异常。经排查&#xff0c;是函数参数没有定义类型所以&#xff0c;dart默认是dynamic类型&#xff0c;而dynamic编译阶段不检查类型&#xff0c;正是由于编译阶段不检查类型&#xff0c;很明显的错误也只能运行的时候才…

【Axure高保真原型】中继器网格图片拖动摆放

今天和大家分享中继器网格图片拖动摆放的原型模板&#xff0c;我们可以通过鼠标拖动来移动图片&#xff0c;拖动过程其他图标会根据图片拖动自动排列&#xff0c;松开鼠标是图片停放在指定位置&#xff0c;其他图标自动排列。那这个模板是用中继器制作的&#xff0c;所以使用也…

C# 跨线程访问窗体控件

在不加任何修饰的情况下&#xff0c;C# 默认不允许跨线程访问控件&#xff0c;实际在项目开发过程中&#xff0c;经常使用跨线程操作控件属性&#xff0c;需要设置相关属性才能正确使用&#xff0c;两种方法设置如下&#xff1a; 方法1&#xff1a;告诉编译器取消跨线程访问检…

XML—标记语言

什么是XML&#xff1f; Extensible Markup Language&#xff0c;可扩展标记语言。 那标记语言是什么&#xff1f; 用文字做标记表达一些效果或携带一些数据。比如&#xff1a;HTML、XML 我的理解&#xff1a;用倾盆大雨表达雨很大 那XML为什么说是可扩展的呢&#xff1f; 还…

ethers.js9、过滤事件

在 合约监听 的基础上,我们拓展一下,在监听的过程中增加过滤器,监听指定地址的转入转出。 过滤器 当合约创建日志(释放事件)时,它最多可以包含[4]条数据作为索引(indexed)。索引数据经过哈希处理并包含在布隆过滤器中,这是一种允许有效过滤的数据结构。因此,一个事件…

Java学数据结构(4)——散列表Hash table 散列函数 哈希冲突

目录 引出散列表Hash table关键字Key和散列函数(hash function)散列函数解决collision哈希冲突&#xff08;碰撞&#xff09;分离链接法(separate chaining)探测散列表(probing hash table)双散列(double hashing) Java标准库中的散列表总结 引出 1.散列表&#xff0c;key&…

SQLite数据库C_C++接口(保姆级API应用 1.4W字)(全网最详细介绍,学完必掌握)

目录 sqlite3的C/C API应用 前言 SQLite3库安装 API函数 打开、关闭、错误处理 打开 返回值 关闭 错误调试 实际应用 执行SQL&#xff08;DDL、DML&#xff09; API介绍 实际应用 回调函数查询 API介绍 实际应用 全缓冲查询 API介绍 实际应用 字节缓冲查询…

【Linux】【驱动】自动创建设备节点

【Linux】【驱动】自动创建设备节点 续驱动代码操作指令linux端从机端 续 这里展示了如何自动的方式去创建一个字符类的节点 下面就是需要调用到的程序 函数 void cdev_init(struct cdev *, const struct file_operations *);第一个参数 要初始化的 cdev 第二个参数 文件操作…

【微服务部署】01-Kubernetes部署流程

文章目录 部署1. Kubernetes是什么2. Kubernetes的优势3. 环境搭建4. 应用部署 部署 1. Kubernetes是什么 Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源系统 2. Kubernetes的优势 自动化容器部署资源管理与容器调度服务注册发现与负载均衡内置配置与秘钥…

STM32 CUBEMX CAN通信数据发送失败原因分析

CAN通信是一种数据通信协议&#xff0c;用于在不同设备之间进行通信。它是一种高效的、实时的、可靠的、多主机的、串行通信系统&#xff0c;通常用于汽车电子、工业自动化等领域。CAN通信协议是由德国BOSCH公司于1986年引入&#xff0c;并在欧洲和日本广泛使用。CAN通信具有独…

uniapp热更新

首先热更新需要wgt包&#xff1b; 其次先了解这两个组件 下载的方法 安装的组件 场景&#xff1a; 当你项目的js文件或者页面文件或者静态图片文件css文件更新的时候可以走热更新&#xff1b; 而当你安装新的组件插件或者开启新的权限等功能的时候就无法通过热更新进行更新了…

自然语言处理(三):基于跳元模型的word2vec实现

跳元模型 回顾一下第一节讲过的跳元模型 跳元模型&#xff08;Skip-gram Model&#xff09;是一种用于学习词向量的模型&#xff0c;属于Word2Vec算法中的一种。它的目标是通过给定一个中心词语来预测其周围的上下文词语。 这节我们以跳元模型为例&#xff0c;讲解word2vec的…

C语言(第三十四天)

1. 二进制 其实我们经常能听到2进制、8进制、10进制、16进制这样的讲法&#xff0c;那是什么意思呢&#xff1f;其实2进制、8进制、10进制、16进制是数值的不同表示形式而已。 比如&#xff1a;数值15的各种进制的表示形式: 15的2进制&#xff1a;1111 15的8进制&#xff1a;1…