XSS漏洞:pikachu靶场中的XSS通关

news2024/10/5 17:59:09

目录

1、反射型XSS(get)

2、反射性XSS(POST)

3、存储型XSS

4、DOM型XSS

5、DOM型XSS-X

6、XSS之盲打

7、XSS之过滤

8、XSS之htmlspecialchars

9、XSS之href输出

10、XSS之js输出


最近在学习XSS漏洞,这里使用pikachu靶场中的SQL注入来复习+练习一下XSS漏洞

进入漏洞环境中可以看到有好几种类型,我们先点击到概述:

可以看到是这样介绍XSS漏洞的:

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
    1.反射性XSS;
    2.存储型XSS;
    3.DOM型XSS;
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
  输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
  输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

1、反射型XSS(get)

首先就是反射性的XSS,这个简单易懂,就是直接插入一个反弹代码,如果成功反弹了就是存在反射性XSS漏洞,可以看到这里的页面如下所示:

那么就可以尝试在输入框中输入一个<script>alert(1)</script>来验证一下

但是尝试发现输入框的长度有限制,我们需要将限制长度修改一下:

尝试后发现,修改完长度后,输入<script>alert(1)</script>后点击submit后成功弹窗了

2、反射性XSS(POST)

来到这一关,可以看到时一个登录框,是POST提交的方式

可以使用简单的暴力破解就可以知道账号密码时admin 123456 ,登录成功后的页面:

然后尝试进行弹窗:

可以看到成功的弹窗了

既然可以弹窗那么就可以尝试使用在线xss来获取更多信息:

XSS在线平台新建项目,生成xss代码:

将url放在弹窗处:

再去看xss在线平台就可以看到成功的获取到了信息:

3、存储型XSS

来到存储型xss模块中可以看到如下页面:

可以看到是一个留言板,那么尝试输入script代码:

可以看到弹窗了,后面再次刷新页面就会发现又弹窗了,这说明我们输入的内容插入到网站的后台数据库中了,如果在这里插入在线网站的获取cookie的js代码,那么后面所有查看该留言的所有用户的信息都会被我们获取到

4、DOM型XSS

来到这一关,可以看到如下页面:

可以看到是一个输入框,然后可以点击click me!

那么尝试输入一个弹窗代码试试看:

可以看到输入后,并没有弹窗,而是输出了一个链接,那么我就想起来之前学习过的使用a超链接来进行弹窗的方法,尝试一下:

对前面的gref标签进行闭合后,我们可以输入一个事件弹窗代码,然后将鼠标移动到图片上后就成功大弹窗了,也可以使用点击事件进行弹窗:

5、DOM型XSS-X

来到这一关,可以看到如下页面:

可以看到是一个输入框,后面写着“请说出你的伤心事”,有趣

尝试进行闭合弹窗:

点击链接可以看到跳转到下一个页面,成功弹窗了:

6、XSS之盲打

可以看到是一个意见提交页面,我们输入弹窗代码,然后看提示会发现后台地址,因此我们提交完评论后尝试访问后台登录地址:

可以看到输入后台登录账号密码后,直接进行了弹窗,这时如果登录的是管理员,我们就成功的可与拿到管理员的信息

7、XSS之过滤

来到这一关,尝试弹窗,可以看到好像输入的标签被过滤了,因此我们需要绕过后再进行弹窗,

通过不断地测试会发现使用大小写、事件弹窗都可以绕过限制成功弹窗:

接下来我们尝试大小写混合的方式来进行注入,成功弹窗。

<ScRipT>alert('xss')</ScRipT>

<img src=x onerror="alert(111)"/> 

8、XSS之htmlspecialchars

首先先来了解一下htmlspecialchars是什么:

htmlspecialchars是一种用于转义HTML特殊字符的函数,可以将一些特殊字符转换为HTML实体,防止恶意用户输入恶意代码导致安全漏洞。htmlspecialchars函数可以将特殊字符如<、>、&、"等转换为对应的HTML实体,从而确保在网页中显示这些字符时不会被解释为HTML代码。htmlspecialchars函数在PHP中常用于对用户输入的数据进行处理,以防止跨站脚本攻击(XSS)等安全问题。

那么说明这一关是有很严格的过滤的,因此还是需要绕过限制才能进行弹窗:

可以看到使用'闭合后,加上点击事件是可以成功弹窗的

9、XSS之href输出

href输出在a标签的herf属性里面,可以使用javascript协议来执行js 防御的时候只允许http或者https

因此我们可以利用js为协议来进行弹窗:

10、XSS之js输出

这一关通过不断尝试发现提前闭合<script>标签可以进行弹窗:

到此,pikachu靶场中的XSS相关的关卡就学习完毕了

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

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

相关文章

文件上传安全指南:保护免受不受限制的文件上传攻击

文件上传安全指南&#xff1a;保护免受不受限制的文件上传攻击 在现代应用程序中&#xff0c;文件上传功能是一个常见且重要的部分。然而&#xff0c;这也为攻击者提供了潜在的攻击向量&#xff0c;尤其是不受限制的文件上传攻击。本文将详细介绍如何通过一系列安全措施来保护…

【C语言】指针(三)

目录 一、字符指针 1.1 ❥ 使用场景 1.2 ❥ 有关字符串笔试题 二、数组指针 2.1 ❥ 数组指针变量 2.2 ❥ 数组指针类型 2.3 ❥ 数组指针的初始化 三、数组指针的使用 3.1 ❥ 二维数组和数组名的理解 3.2 ❥ 二维数组传参 四、函数指针 4.1 ❥ 函数的地址 4.2 ❥ 函数…

3D瓦片地图组件上线|提供DEM数据接入,全方位呈现三维地图地形!

在用户调研中&#xff0c;我们了解到很多用户自身的可视化项目&#xff0c;需要在垂直空间上表现一些业务&#xff0c;例如&#xff1a;3D地形效果&#xff0c;数据底板建设等&#xff0c;而传统的地图效果不满足此用户需求。瓦片地图能够无限加载大地图&#xff0c;以更三维的…

【免费Web系列】大家好 ,今天是Web课程的第六天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 后端Web实战(IOCDI) 前言 Web开发的基础知识 &#xff0c;包括 Tomcat、Servlet、HTTP协议等&#xff0c;我们都已经学习完毕了&#xff0c;那接下来&#xff0c;我们就要进入Web开发的实战篇。在实战篇中…

正在直播:Microsoft Copilot Studio 新增支持Copilot代理、Copilot扩展等多项功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

如何在go语言中调用c语言代码

1.安装c语言编译器 要使用cgo&#xff0c;需要安装c语言编译器 gcc 2.检查CGO_ENABLED时候开启 使用以下命令查看&#xff1a; go env CGO_ENABLED 如果go env CGO_ENABLED被禁用(为0),需要将其设置为开启(为1) 3.编写c语言程序&#xff0c;并用go语言调用c语言程序 1&#xff…

机器学习之支持向量机SVM

支持向量机 概念 是supported vector machine&#xff08;支持向量机&#xff09;&#xff0c;即寻找一个超平面使样本分成两类&#xff0c;且间隔最大分类 分类 硬间隔 若样本线性可分&#xff0c;且所有样本分类正确情况下&#xff0c;寻找最大间隔&#xff0c;即硬间隔 若…

数据库缓存 buffer pool详解

什么是buffer pool buffer pool, 又称之缓存池, 是mysql中为了提升查询性能而引入的缓存, 如果每次查询和修改都去操作磁盘的话, 性能就会很差, 从而引入 Buffer Pool包含多个缓冲页&#xff08;默认大小通常为16KB&#xff09;&#xff0c;每个缓冲页都有对应的控制信息&#…

23种设计模式之一————外观模式详细介绍与讲解

外观模式详细讲解 一、概念二、 外观模式结构核心思想及解释模式的UML类图模式角色应用场景模式优点模式缺点 三、实例演示图示代码展示运行结果 一、概念 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它提供了一个统一的接口&#xff0c…

自动驾驶---Tesla的自动驾驶技术进化史(PerceptionPlanning)

1 前言 笔者在专栏《自动驾驶Planning模块》中已经详细讲解了传统自动驾驶Planning模块的内容&#xff1a;包括行车的Behavior Planning和Motion Planning&#xff0c;以及低速记忆泊车的Planning&#xff08;最开始有15篇&#xff0c;目前逐渐更新到17篇&#xff09;。读者对整…

【C语言】文件的编译链接和预处理

文件的编译链接和预处理 程序的翻译环境和执行环境翻译环境预处理&#xff08;预编译&#xff09;过程编译过程汇编过程链接过程 运行环境 预处理详解预处理符号预处理指令#define#define定义标识符#define定义宏#define替换规则 #与###的使用##的使用 带有副作用的宏参数宏与函…

C++面向对象的第二大特性:继承

1.继承的介绍 首先容我先向大家举一个列子: 我这里定义了一个Person的类 class Person { protected:string name;int age;string address;}; 在这个基础上&#xff0c;我要定义一个关于Student , Worker 的类 由于Student Worker都具有Person类中的成员变量 &#xff0c…

C语言自定义类型:结构体

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 C语言自定义类型:结构体 收录于专栏【C语言学习】 本专栏旨在分享学习C语言学习的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 结…

EyeMock下载与使用教程

视频眼神修复直视镜头的AI具有极高的灵活性和适应性。它可以根据不同的拍摄环境和主播需求进行个性化设置&#xff0c;确保最佳的视觉呈现效果。在直播互动中&#xff0c;主播可能因为分神或疲劳而失去与观众的直视&#xff0c;这款工具能够迅速识别并修复这一问题&#xff0c;…

苹果M4性能分析:进步神速?还有多少空间?

2024年初&#xff0c;苹果推出了M4处理器&#xff0c;令人意外的是&#xff0c;它的发布距离M3发布仅仅过去了半年时间。更让人惊讶的是&#xff0c;M4首次亮相于iPad Pro。这一新处理器不仅仅是M3的简单升级版本&#xff0c;而是一次全面的架构优化。本文将详细分析M4处理器的…

网络工程师备考1——基础学习

认识设备 1 交换机 一、什么是交换机&#xff1f; 实现不同电脑之间数据的转发 换机是一种用于电(光)信号转发的网络设备。 它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。交换机工作于OSI参考模型的第二层&#xff0c;即数据…

sw套合样条曲线

套合样条曲线,可以变成一条曲线,然后可以进行分段

sql select获取mysql所有数据库,指定数据库下的所有表名

介绍一下 MySQL 8.0 中默认安装的几个系统数据库/模式。 当我们安装 MySQL 8.0 并初始化数据库之后&#xff0c;默认会创建以下系统数据库&#xff1a; mysql&#xff0c;存储了 MySQL 服务器正常运行所需的各种信息。 information_schema&#xff0c;提供了访问数据库元数据…

黑马点评1——短信篇(基于session)

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

使用DataGrip连接跳板机后再连接远程服务器的mysql数据库

相比配置本地数据库就是多了一步SSH/SSL配置。 添加新的mysql连接&#xff0c;选择SSH/SSL&#xff0c;勾选Use SSH tunnel&#xff1a; 点击右边的…配置跳板机连接&#xff0c;输入账号密码&#xff0c;然后保存&#xff1a; 接着配置General&#xff0c;里面填上要连接的数…