xss前十二关靶场练习

目录

一、xss原理和分类

1.原理

2.分类:xss分为存储型和反射型以及dom型

(1)反射性

(2)存储型

(3)dom型

二、靶场关卡练习​编辑

1.第一关

2.第二关

3.第三关

4.第四关

5.第五关

6.第六关

7.第七关

8.第八关

9.第九关

10.第十关

11.第十一关

12.第十二关

三、总结


一、xss原理和分类

1.原理

        xss叫做跨站脚本攻击,指的是攻击者利用网页的漏洞,在我们的页面插入我们恶意的script链接,诱导我们的用户去点击,从而触发我们的链接获取用户的cookie值,从而获取网页的的权限

2.分类:xss分为存储型和反射型以及dom型

(1)反射性

        攻击者通过构建一个payload链接,然后诱导我们的用户去点击链接,当用户点击链接后,去访问我们正常的服务器,我们的服务器将正常的页面的代码和xss链接返回给我们的浏览器,浏览器正常解析我们的页面和恶意payload完成后去访问我们的恶意服务器,我们的攻击者就可以从恶意的服务器上获取用户的cookie和信息。

(2)存储型

        攻击者通过留言板等,在留言板处提交我们的script的恶意脚本存储在我们的服务器上,当用户访问我们的服务器的时候,服务会将携带有恶意脚本的链接以及正常的页面返回给我们的浏览器,我们的浏览器正常的去解析我们的页面代码和恶意代码,这时候就会去访问我们的恶意服务器,我们的攻击者就可以从恶意的服务器上获取到用户信息

(3)dom型

        其实和我们的反射型很相同

二、靶场关卡练习

1.第一关

在我们的url上随便写入一个aaa看一下我们的源代码注入在哪里

这时候我们直接在url上写一个script标签

<script>alert(1)</script>

成功弹窗

2.第二关

我们在输入栏输入点击就会触发弹窗的代码,查看源码发现没逃逸出双引号

οnclick="alert(1)"

我们尝试去逃逸出我们的双引号,然后点击搜索出现弹窗

aaa" οnclick=''alert(1)

3.第三关

在输入栏输入点击代码看是否有弹窗,再看我们的源代码发现我们的双引号被过滤了

aaa" οnclick="alert(1)

尝试使用单引号看是否可以绕过过滤,点击搜索发现出现弹窗

aaa' οnclick='alert(1)

4.第四关

在输入栏输入aaa"看我们提交的内容到了哪里,看源代码

在我们的输入栏输入点击触发脚本,发现出现弹窗

aaa" οnclick="alert(1)

5.第五关

在输入栏输入点击触发弹窗代码,查看源码我们发现on被过滤为o_n无法逃逸,无法出现弹窗

aaa" οnclick="alert(1)

我们尝试换成其他的恶意脚本弹窗,查看源码发现我峨嵋你的script被过滤为sc_ript还是无法弹窗

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

我们尝试利用链接弹窗看能否执行

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

我们点击链接,查看源码发现成功的绕过并出现了弹窗

6.第六关

我们继续使用onclick点击触发,查看源码发现我们的on被过滤为o_n

aaa" οnclick="alert(1)

我们尝试使用链接方式看能否触发,查看源码发现我们的href被过滤为了hr_ef,也无法弹窗

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

我们不妨换一种思路既然全被过滤了,能否使用大小写进行绕过,发现成功绕过并出现弹窗

aaa" ONclick="alert(1)

7.第七关

我们继续尝试在输入栏输入点击触发脚本,我们查看源码发现我们的on被过滤了,弹窗失败

aaa" οnclick="alert(1)

我们的on被过滤了,我们尝试双写on看是否被过滤,查看源码发现绕过并成功弹窗

aaa" oonnclick="alert(1)

8.第八关

我们查看源码发现被执行的是在a标签内的,我们使用a标签弹窗,发现我们的script被过滤为scr_ipt,尝试使用大小写绕过结果自动过滤为小写,都无法弹窗

javascript:alert(1)

javaSCRIPT:alert(1)

我们尝试使用html编码,发现成功注入,原因是我们的html编码是由js执行编译的。

java&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)

点击友情链接,发现弹窗成功。

9.第九关

我们查看源码发现被执行的部分还是在a标签里面,我们输入弹窗脚本发现提示连接不合法

javascript:alert(1)

我们尝试加上http头部,虽然成功注入但是我们的script被过滤为scr_ipt

http://javascript:alert(1)

我们尝试html实体编码,发现成功绕过但是点击链接并未成功触发,我们需要绕过http://

http://java&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)

我们尝试使用//绕过http://,原理是在//在编译的过程可以理解为注释符号,可以注释后面的内容,成功的弹窗

java&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)//http://

10.第十关

我们发现没有注入的输入栏,我们查看源码发现存在隐藏的输入栏,我们在url上尝试进行注入,我们发现t_link和t_history无法成功注入

?&t_link=aaa

?&t_history=aaa

我们尝试注入t_sort发现成功,我们找到了注入点尝试进行脚本注入

?&t_sort=aaa"

我们尝试注入触发弹窗脚本,但是我们需要注意的是需要有文本框能够点击

?&t_sort=aaa" type="text" οnclick="alert(1)"

点击我们的文本文框,发现成功触发弹窗

11.第十一关

我们直接查看源码,发现存在隐藏的文本框可以触发弹窗,我们发现t_refer特别像我们的头部字段,所以我们直接利用我们火狐浏览器的hackbar插件,传递我们头部字段

选择我们的referer,然后输入我们的脚本

aaa" type="text" οnclick="alert(1)

点击提交,成功的弹窗

12.第十二关

我们直接查看源码发现存在的隐藏的文本框,我们发现有一个叫做t_ua,我们猜测会不会是user agent我们利用hackbar进行测试

我们在hackbar上勾选我们的user agent,在里面输入我们的点击弹窗脚本

aaa" type="text" οnclick="alert(1)"

我们点击文本框,发现成功的弹窗

三、总结

        一般存在xss漏洞的我们先看源码,看在哪里触发的,然后根据自己的所学不停的尝试去绕过,注意方法。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis——认识Redis

简单介绍 Redis诞生于2009年&#xff0c;全称是Remote Dictionary Server&#xff0c;远程词典服务器&#xff0c;是一个基于内存的键值型NoSQL数据库。 特征 键值&#xff08;Key-value&#xff09;型&#xff0c;value支持多种不同数据结构&#xff0c;功能丰富单线程&…

对象模型和this指针(个人学习笔记黑马学习)

1、成员变量和成员函数 #include <iostream> using namespace std; #include <string>//成员变量和成员函数分开存储class Person {int m_A;//非静态成员变量 属于类的对象上的static int m_B;//静态成员变量 不属于类的对象上void func() {} //非静态成员函数 不…

博客程序系统其它功能扩充

一、注册功能 1、约定前后端接口 2、后端代码编写 WebServlet("/register") public class RegisterServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置…

《向量数据库指南》——提高向量数据库Milvus Cloud 2.3的运行效率

简介:向量数据库彻底改变了我们处理复杂数据结构的方式: 向量数据库彻底改变了我们处理复杂数据结构的方式,为高维矢量提供了高效的存储和检索。作为向量数据库专家和《向量数据库指南》的作者,我很高兴能与大家分享向量数据库运行效率方面的最新进展。在本文中,我们将探讨…

ARM编程模型-常用指令集

一、ARM指令集 ARM是RISC架构&#xff0c;所有的指令长度都是32位&#xff0c;并且大多数指令都在一个单周期内执行。主要特点&#xff1a;指令是条件执行的&#xff0c;内存访问使用Load/store架构。 二、Thumb 指令集 Thumb是一个16位的指令集&#xff0c;是ARM指令集的功能…

PandaGPT部署演示

PandaGPT 是一种通用的指令跟踪模型&#xff0c;可以看到和听到。实验表明&#xff0c;PandaGPT 可以执行复杂的任务&#xff0c;例如生成详细的图像描述、编写受视频启发的故事以及回答有关音频的问题。更有趣的是&#xff0c;PandaGPT 可以同时接受多模态输入并自然地组合它们…

嵌入式linux(imx6ull)下RS485接口配置

接口原理图如下&#xff1a; 由原理图可知收发需要收UART_CTS引脚控制,高电平时接收&#xff0c;低电平时发送。通过查看Documentation/devicetree/bindings/serial/fsl-imx-uart.yaml和Documentation/devicetree/bindings/serial/rs485.yaml两个说明文档&#xff0c;修改设备树…

Nginx__高级进阶篇之LNMP动态网站环境部署

动态网站和LNMP&#xff08;LinuxNginxMySQLPHP&#xff09;都是用于建立和运行 web 应用程序的技术。 动态网站是通过服务器端脚本语言&#xff08;如 PHP、Python、Ruby等&#xff09;动态生成网页内容的网站。通过这种方式&#xff0c;动态网站可以根据用户的不同请求生成不…

分类算法系列⑤:决策树

目录 1、认识决策树 2、决策树的概念 3、决策树分类原理 基本原理 数学公式 4、信息熵的作用 5、决策树的划分依据之一&#xff1a;信息增益 5.1、定义与公式 5.2、⭐手动计算案例 5.3、log值逼近 6、决策树的三种算法实现 7、API 8、⭐两个代码案例 8.1、决策树…

SpringCloud(34):Nacos服务发现

1 从单体架构到微服务 1.1单体架构 Web应用程序发展的早期,大部分web工程师将所有的功能模块打包到一起并放在一个web容器中运行,所有功能模块使用同一个数据库,同时,它还提供API或者UI访问的web模块等。 尽管也是模块化逻辑,但是最终它还是会打包并部署为单体式应用,这…

C++:类和对象(二)

本文主要介绍&#xff1a;构造函数、析构函数、拷贝构造函数、赋值运算符重载、const成员函数、取地址及const取地址操作符重载。 目录 一、类的六个默认成员函数 二、构造函数 1.概念 2.特性 三、析构函数 1.概念 2.特性 四、拷贝构造函数 1.概念 2.特征 五、赋值…

deepstream6.2部署yolov5详细教程与代码解读

文章目录 引言一.环境安装1、yolov5环境安装2、deepstream环境安装 二、源码文件说明三.wts与cfg生成1、获得wts与cfg2、修改wts 四.libnvdsinfer_custom_impl_Yolo.so库生成五.修改配置文件六.运行demo 引言 DeepStream 是使用开源 GStreamer 框架构建的优化图形架构&#xf…

温控仪的工作原理

温控仪是调控一体化智能温度控制仪表&#xff0c;它采用了全数字化集成设计&#xff0c;具有温度曲线可编程或定点恒温控制、多重PID调节、输出功率限幅曲线编程、手动/自动切换、软启动、报警开关量输出、实时数据查询、与计算机通讯等功能&#xff0c;将数显温度仪表和ZK晶闸…

Element Plus table formatter函数返回html内容

查看 Element Plus table formatter 支持返回 类型为string 和 VNode对象&#xff1b; 若依全局直接用h函数&#xff0c;无需引用 下面普通基本用法&#xff1a;在Element Plus中&#xff0c;你可以使用自定义的formatter函数来返回VNode对象&#xff0c;从而实现更灵活的自定…

nvm管理(切换)node版本,方便vue2,vue3+ts开发

使用nvm切换node版本 1. 完全删除之前的node及npm&#xff08;清理干净Node: 应用程序&#xff0c;缓存的文件&#xff0c;环境变量 &#xff09; 2. 使用管理员身份安装nvm&#xff0c;下载如下 3. 安装完nvm之后找到nvm下载路径对应的文件 4. 使用管理员身份打开cmd&#xff…

人工智能和大数据:跨境电商如何实现定制化营销?

在跨境电商竞争激烈的市场中&#xff0c;如何精准地满足消费者的需求并提供个性化的购物体验成为了商家们面临的重要挑战。幸运的是&#xff0c;人工智能和大数据技术的崛起为跨境电商带来了新的机遇&#xff0c;使得定制化营销成为可能。本文将探讨人工智能和大数据在跨境电商…

C# OpenVino Yolov8 Detect 目标检测

效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using static System.Net.Mime.MediaT…

Mybatis 插入、修改、删除

前面几篇我们介绍了使用Mybatis查询数据&#xff0c;并且也了解了如何在Mybatis中使用JDK的日志系统打印日志&#xff1b;本篇我们继续介绍如何使用Mybatis完成数据的插入、修改和删除。 如果您对查询数据和Mybatis集成JDK日志系统不太了解&#xff0c;建议您先进行了解后再阅…

《Web安全基础》04. 文件操作安全

web 1&#xff1a;文件操作安全2&#xff1a;文件上传漏洞2.1&#xff1a;简介2.2&#xff1a;防护与绕过2.3&#xff1a;WAF 绕过2.3.1&#xff1a;数据溢出2.3.2&#xff1a;符号变异2.3.3&#xff1a;数据截断2.3.4&#xff1a;重复数据 3&#xff1a;文件包含漏洞4&#xf…

Pyecharts数据可视化(一)

目录 1.Pyecharts简介 2.Pyecharts的常用方法 3.Pyecharts绘制柱状图 3.1 绘制并列柱状图 3.2 绘制水平直方图 1.Pyecharts简介 Pyecharts是一个用于创建交互式图表的Python库。它基于Echarts&#xff0c;一个强大的JavaScript图表库&#xff0c;Pyecharts允许Python开发者…