XSS初级漏洞靶场

一、环境的搭建

可以在githb上找靶机包,使用小皮面板搭建在自己本机

与此文章类似(放在www目录下)

二、XSS漏洞简介

1、什么是xss漏洞

当用户访问被xss注入的网页,xss代码就会被提取出来。用户浏览器就会解析这段xss代码,也就是用户被攻击了。

用户最简单的动作就是使用浏览器上网,并且浏览器中有js解释器,可以解析js,然而由于浏览器不具有人格,不会判断代码是否具有恶意行为,只要代码符合语法规则,浏览器就可以解析这段xss代码。

简单来说,xss就是通过攻击者精心构造的js代码注入到网页中,并且浏览器解释运行了这段恶意的js代码,以达到恶意攻击浏览器的效果。

xss的攻击对象是用户浏览器,属于被动攻击,因此xss攻击涉及到三个角色

  • 攻击者
  • 用户浏览器
  • 服务器

当然不要以为xss属于客户端攻击,受害者是用户,就会以为跟自己的网站、服务器安全就没有关系,网站的管理员也是用户之一,知识相对普通用户权限更高。

实现xss攻击需要具备的两个条件:

  • 需要向Web页面注入精心构造的恶意代码
  • 对用户的输入没有做果过滤,恶意代码能被浏览器成功执行

2、XSS漏洞的类型

xss漏洞的位置通常在于Web应用程序的输入验证或者输出过滤不严格的地方

类型:

  • 存储型XSS(Stored XSS):攻击者将恶意脚本存储在服务器上,当其他用户访问这些恶意脚本的网页时,就会触发XSS漏洞
  • 反射型XSS(Reflected XSS):恶意脚本作为URL参数发送给服务器,服务器将恶意脚本插入到返回的页面中,用户访问该页面就会执行该脚本
  • DOM-based XSS:攻击不涉及服务器端,而是通过修改页面的DOM结构来实现攻击,通常通过修改客户端脚本中的DOM元素来触发漏洞。

三、开始闯关

在此之前补充三个弹窗函数

alert()
confirm()
prompt()

反射型XSS

1、level1

语句插入

 从源码可以看到,后端是get接收参数,并且没有过滤,
那么我们直接在参数的后面加上script标签

?name=test<script>alert(1)</script>

结果:

2、level2

和第一关差不多,按刚才的输入以此,看下情况

可以看到,我们的输入被原米原样输出,没有弹出警告框

看下后端源代码,我们的参数会经过这个过滤函数

htmlspecialchars()会将& (& 符号)、" (双引号)、' (单引号)、< (小于)、> (大于)等符号转换成HTML实体编码。

那么在h2标签中我们无法进行注入,但可以看到下面的input标签还有一个输出点,
在这里我们只需要绕过双引号和闭合尖括号就可以实现

效果:

test"><script>alert(0)</script>

第二种方法:鼠标点击事件onclock

也是对input标签进行操作,闭合前一个单引号,在后面加上点击事件的属性

test"onclick="alert(1)

点击一下:

3、level3

先试着用上一关的闭合单双引号试试,

这时候我们使用点击事件,来进行注入,先将单引号闭合

test'onclick='alert(1)

点击,查看效果

4、level4

我们在使用上一关的方法,直接使用利用属性,看能不能过
很明显可以直接过

看下源码,看考察的点是什么?
他在考查看我们input的闭合,会将尖括号替换为空

5、level5

我们直接在试一下上一关的方法
可以看到我们的onclick被过滤替换了

我们看源码,都替换了哪些

可以看到我们是不能再使用script标签了,带on的事件关键字也不能用了

我们不妨直接将input前面的标签闭合掉,使用a标签在href后直接使用javascript伪协议

1"><a href="javascript:alert(1)">1</a

6、level6

直接看源码可以看到,将我们上一关用的href也过滤掉了

在html的标签中,浏览器在解析过程中会忽略大小写的,而我们可以看到上面都是过滤小写,那我们不妨可以试试大小写绕过
(当然在javascript内部是严格区分大小写的)

1 " OnCLick="alert(1)

7、level7

我们可以看到这关是将关键词替换为空进行过滤,那么我们可以进行双写实现绕过

1"oonnclick="alert(1)

8、level8

此处添加友情链接,那么不就可以用我们a标签里href的javascript伪协议了吗

但可惜的是被过滤掉了

那我们直接使用编码就行

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

9、level9

查看源码可以看到过滤了我们很多关键字,并且必须需要加上http://才可以

那我们针对这些过滤使用实体编码来绕过

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x27;http://;&#x27;&#x29;

很明显我们添加上了我们想要的东西

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

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

相关文章

第三章 软件定义汽车的典型架构

第三章 软件定义汽车的典型架构 软件定义汽车的总体架构可以分为四层架构&#xff1a; &#xff08;1&#xff09;硬件平台&#xff0c;异构分布式硬件架构&#xff1b; &#xff08;2&#xff09;系统软件层&#xff0c;包括虚拟机、系统内核、POSIX、Autosar等&#xff1b; …

前端Vue3项目如何打包成Docker镜像运行

将前端Vue3项目打包成Docker镜像并运行包括几个主要步骤&#xff1a;项目打包、编写Dockerfile、构建镜像和运行容器。下面是一个基本的流程&#xff1a; 1. 项目打包 首先&#xff0c;确保你的Vue3项目可以正常运行和打包。在项目根目录下执行以下命令来打包你的Vue3项目&am…

如何优化阿里云幻兽帕鲁/Palworld的多人联机性能,并避免内存溢出导致的异常退出游戏?

优化阿里云幻兽帕鲁/Palworld的多人联机性能并避免内存溢出导致的异常退出游戏&#xff0c;可以采取以下几种方法&#xff1a; 选择合适的内存配置&#xff1a;由于幻兽帕鲁是一个对内存需求较高的游戏&#xff0c;建议选择至少16GB的内存。对于不同的玩家数量&#xff0c;可以…

【leetcode】相交链表

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 点击查看题目 思路: struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *he…

智慧楼宇的心脏:E6000物联网主机

智慧楼宇是指通过全面覆盖的感知设备和互联网技术&#xff0c;为建筑提供高效、舒适、安全、环保、可持续的智能化服务。 在科技快速发展的今天&#xff0c;智慧楼宇已经不再是遥不可及的梦想。而在这个梦想成真的过程中&#xff0c;物联网主机扮演着至关重要的角色。它如同智慧…

后台组件体系

从今天开始进入更细粒度说明。后台微服务是由组件构成的。平台的开发理念是为甲方打造一个生态环境。安装实施时为客户安装私仓来管理组件。开发微服务时鼓励拆分为组件。开发新功能时&#xff0c;先看有没有相关组件&#xff0c;有的话就在pom.xml文件&#xff08;不要问我这个…

Python环境下一种改进的基于梯度下降的自适应短时傅里叶变换

在数字信号处理技术中&#xff0c;傅里叶变换及其逆变换是一种信号时频分析方法。该方法将信号的时域描述及频域描述联系在一起&#xff0c;时域信号可通过正变换转变为频域信号&#xff0c;频域信号可通过逆变换转变为时域信号进行分析。但傅里叶变换及其逆变换是一种信号的整…

PowerJob快速开始

PowerJob 简介 适用场景 ● 有定时执行需求的业务场景&#xff1a;如每天凌晨全量同步数据、生成业务报表、未支付订单超时取消等。 ● 有需要全部机器一同执行的业务场景&#xff1a;如使用广播执行模式清理集群日志。 ● 有需要分布式处理的业务场景&#xff1a;比如需要更新…

JAVA设计模式——创建型模式

JAVA设计模式——创建型模式 一、创建型模式1.单例模式&#xff08;Singleton Pattern&#xff09;1.1 饿汉式1.2 懒汉式1.3 双重检验锁(double check lock)(DCL)1.4 静态内部类1.5 枚举1.6 破坏单例的几种方式与解决方法1.6.1 反序列化1.6.2 反射 1.7 容器式单例1.8 ThreadLoc…

1950-2022年各省逐年平均降水量数据

1950-2022年各省逐年平均降水量数据 1、时间&#xff1a;1950-2022年 2、指标&#xff1a;省逐年平均降水量 3、范围&#xff1a;33省&#xff08;不含澳门&#xff09; 4、指标解释&#xff1a;逐年平均降水数据是指当年的日降水量的年平均值&#xff0c;不是累计值&#…

解决ODOO12 恢复数据库提示内存不够报错

1. 现象 点击 ‘restore database’ 控制台报错&#xff1a; 2. 解决措施 a. 进入启动脚本的文件夹 cd odoo/odoo-12.0/输入命令 ./odoo-bin --addons-pathaddons --databaseodoo --db_userodoo --db_passwordodoo --db_hostlocalhost --db_port5432 -i INITb. 刷新页面…

java实现图片转pdf,并通过流的方式进行下载(前后端分离)

首先需要导入相关依赖&#xff0c;由于具体依赖本人也不是记得很清楚了&#xff0c;所以简短的说一下。 iText&#xff1a;PDF 操作库&#xff0c;用于创建和操作 PDF 文件。可通过 Maven 或 Gradle 引入 iText 依赖。 MultipartFile&#xff1a;Spring 框架中处理文件上传的类…

css实现一行靠右,多行靠左

利用 inline-block 可以根据内容宽度变化的特性 如果内容多到折行了&#xff0c;那自身的宽度会和父级同宽&#xff0c;同宽后&#xff0c;产生折行&#xff0c;这时候就生效了… <!DOCTYPE html> <html lang"en"> <head><meta charset"U…

前端导出word文件的多种方式、前端导出excel文件

文章目录 纯前借助word模板端导出word文件 &#xff08;推荐&#xff09;使用模板导出 前端通过模板字符串导出word文件前端导出 excel文件&#xff0c;node-xlsx导出文件&#xff0c;行列合并 纯前借助word模板端导出word文件 &#xff08;推荐&#xff09; 先看效果&#xf…

1905_ARMv7-M的堆栈寄存器

1905_ARMv7-M的堆栈寄存器 全部学习汇总&#xff1a; g_arm_cores: ARM内核的学习笔记 (gitee.com) ARMv7-M实现了2种堆栈&#xff0c;分别是MSP和PSP。复位的时候默认是MSP&#xff0c;而当前是哪种可以通过CONTROL.SPSEL寄存器的bit来查看。 SP寄存器的最低2bit&#xff0c;S…

Unity(第二十二部)官方的反向动力学一般使用商城的IK插件,这个用的不多

反向动力学&#xff08;Inverse Kinematic&#xff0c;简称IK&#xff09;是一种通过子节点带动父节点运动的方法。 正向动力学 在骨骼动画中&#xff0c;大多数动画是通过将骨架中的关节角度旋转到预定值来生成的&#xff0c;子关节的位置根据父关节的旋转而改变&#xff0c;这…

STM32利用标准库建立第一个工程

首先就是要有一个固件库&#xff0c;里面有我们建立第一个工程所需的所有文件&#xff0c;在没有搞明白之前我一直很头痛&#xff0c;这么多的东西怎么搞&#xff0c;现在好了都弄清楚了&#xff0c;我把这个固件库放到了我的百度网盘里面了&#xff0c;现在分享给大家&#xf…

【STM32】江科大STM32学习笔记汇总(50)

00. 目录 文章目录 00. 目录01. STM32学习笔记汇总02. 相关资料下载03. 附录 01. STM32学习笔记汇总 【STM32】STM32学习笔记-课程简介(01) 【STM32】STM32学习笔记-STM32简介(02) 【STM32】STM32学习笔记-软件安装(03) 【STM32】STM32学习笔记-新建工程(04) 【STM32】STM…

DDS数据分发服务——提升汽车领域数据传输效率

1.引言 随着智能化技术的快速发展&#xff0c;汽车行业正经历着一场革命性的变革。如今的分布式系统变得越来越复杂且庞大&#xff0c;对网络通信基数要求在功能和性能层面越来越高。数据分发服务&#xff08;DDS&#xff09;作为一项先进的数据传输解决方案&#xff0c;在汽车…

3D桌面端可视化引擎HOOPS Visualize助力工业制造开发AR/VR功能,实现质量控制与检验可视化!

近年来&#xff0c;工业制造领域正迎来一场数字化和智能化的革命。而增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&#xff09;技术也在数字革命的浪潮中的有着重要推动力。这两种技术通过融合数字信息与真实或虚拟环境&#xff0c;为用户提供前所未有的交互体…