xss-labs靶场1-5关

news2024/9/27 19:24:00

文章目录

  • 前言
  • 一、靶场需要知道的前置知识点
    • 1、什么是xss攻击?
    • 2、xss攻击分为几大类
      • 1、反射型xss
      • 2、存储型xss
      • 3、dom型xss
    • 3、xss攻击形成的条件
  • 二、xss-labs关卡1-5
    • 1、关卡1
    • 2、关卡2
    • 3、关卡3
    • 4、关卡4
    • 5、关卡5
  • 总结


前言

此文章只用于学习和反思巩固xss攻击知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、靶场需要知道的前置知识点

  • 1、什么是xss攻击?
  • 2、xss攻击分为几大类
  • 3、xss攻击形成的条件

1、什么是xss攻击?

xss攻击是指攻击者通过插入恶意的xss代码到web页面,当受害者访问插有xss代码的web页面的时候,xss代码会被当作js脚本执行,从而让攻击者达到获取受害者利益的目的。通常xss攻击可以获取cookie,钓鱼、挂马等等。

2、xss攻击分为几大类

  • 1、反射型xss
  • 2、存储型xss
  • 3、dom型xss

1、反射型xss

反射型xss,也是非持久性xss攻击。一般在搜索框、url参数可以见到,攻击者通过注入恶意的脚本代码到如url参数上,然后诱导用户去点击访问,从而盗取用户的重要信息如cookie。因为反射型xss缺点比较多,是一次性的,而且还得利用社会工程学诱导用户点击自己植入xss恶意脚本代码的链接才能生效。

2、存储型xss

存储型xss,也是持久性xss攻击。一般在留言框、登录框可以见到。攻击者会把恶意代码存储到服务器,当用户去访问服务器的时候,服务器会加载已经存储好的恶意代码,从而达到攻击者获取用户信息的目的。

3、dom型xss

不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS。

3、xss攻击形成的条件

  • 1、可控参数
  • 2、无过滤输入输出
  • 3、服务器能解析js脚本带回web页面等等

二、xss-labs关卡1-5

1、关卡1

在这里插入图片描述

发现url有参数name,有可控参数且在url展示一般是反射型xss,如果服务器没有对name参数过滤输入输出,就会造成xss攻击。
攻击语句为

<script>alert(1)</script>

在这里插入图片描述
看源代码也是发现并没有对name参数进行过滤。
在这里插入图片描述

2、关卡2

发现也是url有一个keyword参数,然后是可控参数。是反射性xss。

在这里插入图片描述
提交上一关的攻击语句发现并没有用,我们F12审查元素,看看前端代码。或者直接看前端代码
在这里插入图片描述
在这里插入图片描述

<input name="keyword" value="<script>alert(1)</script>">

发现输入的js代码没有被浏览器执行,关键字符被实体化了。这里我们把input进行闭合,构造payload让js弹窗成功执行。

攻击语句为

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

在这里插入图片描述
看页面源代码发现输入的value值在input标签没有被实体化,但是输出在web页面的keyword被实体化了,典型的过滤输出没过滤输入。
在这里插入图片描述

3、关卡3

第三关发现url也有可控参数wait,但是发现它无论输入什么值并没有被带回web页面,我们只能在搜索框下手了。但是发现搜索框输入"><script>alert(1)</script>并没有被web页面执行。我们猜测是被过滤了,发现前端代码也是发现输入输出过滤了<>和双引号
在这里插入图片描述
在这里插入图片描述

那么就不能用上一关的通过闭合input标签构造js弹窗了。
这里我们用onclick事件
在这里插入图片描述
由于输入语句是<input name=keyword value='1'>
我们要进行闭合value。发现单引号没有被闭合
攻击语句为

'οnclick='alert(1)

在这里插入图片描述
这里攻击语句第二个单引号是为了构造出οnclick=‘alert()’,因为onclick的值要被双引号或者单引号引用。
看源代码也是发现输入输出参数被实体化
在这里插入图片描述

4、关卡4

第四关也是发现url有可控参数keyword。这里我们有了经验,先看看可控参数有没有被实体化,我们提交’"<>看看是怎么回事
看前端代码发现输入参数的<>符号不见了,输出参数也被实体化。
在这里插入图片描述
那么还是用不了尖括号了,我们这里还是利用onclick事件,由于这里输入的input标签是双引号闭合
攻击语句为

"οnclick="alert(1)

在这里插入图片描述
看源码也是发现输入参数<>被替换为空,输出参数被实体化。
在这里插入图片描述

5、关卡5

发现第五关url也是有可控参数keyword,这里我们试一试提交<>"’
然后看前端代码发现输出参数被实体化,输入参数貌似没有过滤。

在这里插入图片描述
在这里插入图片描述
因为这次输入参数没有过滤,我们试一试"><script>alert(1)</script>
发现script被过滤了。被替换成scr_ipt,所以script攻击语句用不了了,我们大小写试一下发现也不行,可能输入参数也被大小写过滤。再试试onclick事件也不行,发现on被替换成o_n。
=
在这里插入图片描述
在这里插入图片描述
==所以之前所有方法都不行,那么这里就要利用标签了
在这里插入图片描述
闭合input标签构造攻击语句为

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

为什么script可以用了呢,因为这里是把script替换为scr_ipt,不是替换javascript。这里是通过a标签,制作一个test超链接。点击test链接就会触发js弹窗
在这里插入图片描述
点击test就行了。看源码也是发现script、on被替换了,输出参数被实体,输入参数被大小写过滤。
在这里插入图片描述

总结

xss攻击分为反射型,存储型,dom型。前五关是反射型xss,xss能触发的原因是有可控参数,输入输出没有严格过滤、服务器能解析js脚本带回web页面。可以通过闭合标签构造payload。此文章是小白自己为了巩固xss攻击而写的,大佬路过请多指教!

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

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

相关文章

C语言scanf_s函数的使用

因为scanf函数存在缓冲区溢出的可能性&#xff1b;提供了scanf_s函数&#xff1b;增加一个参数&#xff1b; scanf_s最后一个参数是缓冲区的大小&#xff0c;表示最多读取n-1个字符&#xff1b; 下图代码&#xff1b; 读取整型数可以不指定长度&#xff1b;读取char&#xf…

Vue typescript项目配置eslint+prettier

1.安装依赖 安装 eslint yarn add eslint --dev安装 eslint-plugin-vue yarn add eslint-plugin-vue --dev主要用于检查 Vue 文件语法 安装 prettier 及相关插件 yarn add prettier eslint-config-prettier eslint-plugin-prettier --dev安装 typescript 解析器、规则补充 …

Ubuntu下载离线安装包

旧版Ubuntu下载地址 https://old-releases.ubuntu.com/releases/ 下载离线包 sudo apt-get --download-only -odir::cache/ncayu install net-tools下载snmp离线安装包 sudo apt-get --download-only -odir::cache/root/snmp install snmp snmpd snmp-mibs-downloadersudo a…

2023 年爆肝将近 20 万字讲解最新 JavaEE 全栈工程师基础教程(更新中)

1. Java 语言基本概述 Java 是一种广泛使用的编程语言&#xff0c;由 James Gosling 在 Sun Microsystems&#xff08;现在是 Oracle Corporation 的一部分&#xff09;于 1995 年发表。Java 是一种静态类型的、类基础的、并发性的、面向对象的编程语言。Java 广泛应用于企业级…

【Java】异常处理及其语法、抛出异常、自定义异常(完结)

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;道阻且长&#xff0c;行则将至 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录 一.&#x1f510;异…

idea Maven Helper插件使用方法

idea Maven Helper插件使用方法 文章目录 idea Maven Helper插件使用方法&#x1f4c6;1.安装mavenhelper&#x1f5a5;️2.使用教程&#x1f4cc;3.解决冲突&#x1f4c7;4.列表展示依赖&#x1f9e3;5.tree展示依赖&#x1f5a5;️6.搜索依赖&#x1f58a;️7.最后总结 &…

css鼠标横向滚动并且不展示滚动条几种方法

需求&#xff1a;实现内容超出之后使用属性滚轮进行左右查看超出内容&#xff0c;并且隐藏滚动条 1.不使用框架实现 每次滚动就滚动40px的距离 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name&quo…

【学习记录】从0开始的Linux学习之旅——编译linux内核

一、学习背景 从接触嵌入式至今&#xff0c;除了安装过双系统接触了一丢丢linux外&#xff0c;linux在我眼中向来是个传说。而如今得到了一块树莓派&#xff0c;于是决心把linux搞起来。 二、概念学习 Linux操作系统通常是基于Linux内核&#xff0c;并结合GNU项目中的工具和应…

gitBash中如何使用Linux中的tree命令

文章目录 在gitBash中安装tree的目的如何安装安装完成,就可以直接完美适配Linux系统了在gitBash中安装tree的目的 如下图,powershell虽然可以看做是window下的Linux系统,但是根本就不适配很多Linux中的命令 如何安装 tree.exe安装网址 下载 tree 命令的 二进制包,安装 tr…

Python数据分析实战-爬取以某个关键词搜索的最新的500条新闻的标题和链接(附源码和实现效果)

实现功能 通过百度引擎&#xff0c;爬取以“开源之夏”为搜索关键词最新的500条新闻的标题和链接 实现代码 1.安装所需的库&#xff1a;你需要安装requests和beautifulsoup4库。可以使用以下命令通过pip安装&#xff1a; pip install requests beautifulsoup42.发起搜索请求…

PyCharm玩转ESP32

想必玩ESP32的童鞋都知道Thonny&#xff0c;当然学Python的童鞋用的更多的可能是PyCharm和VsCode Thonny和PyCharm的对比 对于PyCharm和VsCode今天不做比较&#xff0c;今天重点说一下用PyCharm玩转ESP32&#xff0c;在这之前我们先对比下Thonny和PyCharm的优缺点 1、使用Tho…

微信小程序 prettier 格式化

一、安装prettier插件 二、打开设置 然后再打开setting.json 新增代码 {"editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","prettier.documentSelectors": ["**/*.wxml", "**/*.wx…

竞赛选题 身份证识别系统 - 图像识别 深度学习

文章目录 0 前言1 实现方法1.1 原理1.1.1 字符定位1.1.2 字符识别1.1.3 深度学习算法介绍1.1.4 模型选择 2 算法流程3 部分关键代码 4 效果展示5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计 图像识别 深度学习 身份证识别…

竞赛选题 车位识别车道线检测 - python opencv

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) …

数据中台之用户画像

用户画像应用领域较为广泛,适合于各个产品周期,从新用户的引流到潜在用户的挖掘、 从老用户 的培养到流失用户的回流等。通过挖掘用户兴趣、偏好、人口统计特征,可以 直接 作用于提升营销精准 度、推荐匹配度,最终提升产品服务和企业利润。还包括广告投放、产品布局和行业报…

分片并不意味着分布式

Sharding&#xff08;分片&#xff09;是一种将数据和负载分布到多个独立的数据库实例的技术。这种方法通过将原始数据集分割为分片来利用水平可扩展性&#xff0c;然后将这些分片分布到多个数据库实例中。 1*yg3PV8O2RO4YegyiYeiItA.png 但是&#xff0c;尽管"分布"…

03-基于Feign的远程调用,详解Feign的自定义配置和优化,创建Feign模块

Feign远程调用 Feign替代RestTemplate 利用RestTemplate发起远程调用的代码的缺点 代码可读性差编程体验不统一 , 面对参数复杂的URL难以维护 String url "http://user-service/user/" order.getUserId(); User user restTemplate.getForObject(url, User.cla…

idea中的sout、psvm快捷键输入,不要太好用了

目录 一、操作环境 二、psvm、sout 操作介绍 2.1 psvm&#xff0c;快捷生成main方法 2.2 sout&#xff0c;快捷生成打印方法 三、探索 psvm、sout 底层逻辑 一、操作环境 语言&#xff1a;Java 工具&#xff1a; 二、psvm、sout 操作介绍 2.1 psvm&#xff0c;快捷生成m…

pytorch中gather函数的理解

pytorch函数gather理解 torch.gather(input, dim, index, outNone) → Tensor Parameters: input (Tensor) – 源张量dim (int) – 索引的轴index (LongTensor) – 聚合元素的下标(index需要是torch.longTensor类型)out (Tensor, optional) – 目标张量 公式含义 这个函数的…

STM32 寄存器配置笔记——系统时钟配置 HSE as PLL

一、概述 本文主要介绍使用HSE高速外部时钟通过PLL倍频输出72MHZ的时钟作为系统时钟。下图为时钟树。 使用正点原子的开发板调试OSC_IN、OSC_OUT接的是8MHZ的晶振即为HSE时钟。 二、配置流程 1&#xff09;复位RCC相关的所有寄存器 复位内容是参考正点原子例程&#xff0c;按照…