浅谈XSS简单漏洞xss-labs-master(初级)

一、环境以及xss漏洞简介

网上很多gethub自己下就行

XSS简介:

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

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

  简单来说,XSS就是通过攻击者精心构造的JS代码注入到网页中,并由浏览器解释运行这段JS代码,以达到恶意攻击浏览器的效果。XSS攻击的对象是用户浏览器,属于被动攻击。因此XSS攻击涉及到三个角色:

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

XSS漏洞的位置通常存在于Web应用程序的输入验证或输出过滤不严格的地方,主要包括以下几种类型:

  1. 存储型XSS(Stored XSS):攻击者将恶意脚本存储在服务器上,当其他用户访问包含这些恶意脚本的页面时,就会触发XSS漏洞。

  2. 反射型XSS(Reflected XSS):恶意脚本作为URL参数发送给服务器,服务器将恶意脚本插入到返回的页面中,用户访问该页面时就会执行该脚本。

  3. DOM-based XSS:攻击不涉及服务器端,而是通过修改页面的DOM结构来实现攻击,通常通过修改客户端脚本中的DOM元素来触发漏洞。

XSS漏洞的危害包括但不限于:

  1. 窃取用户信息:攻击者可以通过XSS漏洞窃取用户的Cookie、会话信息等敏感数据,从而实施账号劫持或者钓鱼攻击。

  2. 篡改网页内容:攻击者可以通过XSS漏洞篡改网页内容,包括植入恶意链接、虚假表单等,诱导用户进行恶意操作。

  3. 传播恶意代码:攻击者可以利用XSS漏洞传播恶意代码,进一步扩大攻击范围,甚至控制用户浏览器。

二、正式开始闯关

反射型xss

2.1、level1

语句插入:

并没有任何限制直接插入

这里进行补充弹窗函数

alert
confirm
prompt
?name=<script>alert(1)</script>

结果

2.2、level2

跟刚才的差不多按刚才的去输入看看怎么个情况

好了,没反弹看看源码很明显有一个过滤函数

 那很简单逃逸双引号编码绕过就行了

第二种方法:点击事件 on

自然点击一下

2.3、level3

我们试着跟刚才一样闭合去加双引号,很明显没有逃逸出来

试试单引号

 那自然闭合了测出来了

2.4、level4

咱们的上一种方法直接过,利用属性

它的考察点在这里,它在考察你的input闭合

2.5、level5

试一试上一关的闭合方式

很明显过滤了看看源码

很明显这里过滤和替换了不能使用script标签了,我们使用javascript伪协议

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

很明显可以的

2.6、level6

过滤了这么多东西

 很简单绕过了

2.7、level7

替换为空了on直接进行双写

 

2.8、level8

这友情链接不就是我们刚才玩的javascript伪协议直接输入

很明显被过滤掉了

直接编码不就行了

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)

2.9、level9

链接不合法必须加http

命令没有弹窗试着编码一下

 

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

2.10、level10

没有post请求了,我们URL传参看看

只是回显到页面但是并没有弹出

 看看源码

?keyword=t_link=aaaaa&t_history=bbbbb&t_sort=aaaaaa" onclick="alert(1)

 很明显进来了

那就失一下焦onblur,再用javascript去看

?keyword=t_link=aaaaa&t_history=bbbbb&t_sort=aaaaaa"%20onblur="javascript:alert(1)

 那怎么让它显示出来执行

???改类型

?keyword=t_link=aaaaa&t_history=bbbbb&t_sort=aaaaaa"%20type="text" onclick="alert(1)

2.11、level11

跟上一关一样看看源码

这不就是上一关的URL,那我们很简单就是利用refere去传参

很明显这里有变动

ok,注入点出现,开始表演

2.12、level12

跟上一关一样,只不过注入点变成user_agent而已

2.13、level13


跟前面还是一样的只是注入点变了

输入发现并没有文本框出现

看看源码吧 cookies后面的是有规范的

user=a" type="text" onclick="alert(1)

 

三、总结

这是一个简单靶场,可以带我们入门xss,之后文章会涉及中级以及高级希望大家持续观看下去,提升更快 

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

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

相关文章

git忽略某些文件(夹)更改说明

概述 在项目中,常有需要忽略的文件、文件夹提交到代码仓库中,在此做个笔录。 一、在项目根目录内新建文本文件,并重命名为.gitignore,该文件语法如下 # 以#开始的行,被视为注释. # 忽略掉所有文件名是 a.txt的文件. a.txt # 忽略所有生成的 java文件, *.java # a.j…

React 中,children 属性

在 React 中&#xff0c;children 属性是一个特殊的属性&#xff0c;它允许你将组件作为其他组件的子元素传递。这意味着你可以在组件内部嵌套任何类型的子组件或元素&#xff0c;并且在父组件中通过 props.children 访问它们。这为组件的复用和组合提供了极大的灵活性。 以下…

力扣-H指数

问题 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义&#xff1a;h 代表“高引用次数” &#xff0c;一名科研人员的 h 指数 是指他&#xff08;她&#xff09…

Qt 简约美观的加载动画 小沙漏风格 第六季

这次和大家分享一个沙漏风格的加载动画 效果如下: 这是本系列的第六季了, 本次内容的关键在于cubicTo函数的使用, 在这里分享一个非常好用的网站https://www.desmos.com/calculator/cahqdxeshd 在这上面可以手动拖动贝塞尔曲线的控制点, 并且显示了起终点和两个控制点的精确坐…

Linux中如何在创建子线程的时候设置为分离属性

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> #include<unistd.h> #include <pthread.h> void *mythread(void *arg) {printf("id[%ld]\n",pthread_self()); } int main() { //定义pthread_…

ulimit命令

ulimit命令 ulimit 命令用于查看和设置 shell 运行时的资源限制。它可以控制各种资源&#xff0c;如文件打开数量、堆栈大小、CPU 时间等。ulimit 命令通常用于限制 shell 启动的进程的资源使用量&#xff0c;以防止系统资源被耗尽。ulimit命令的主要作用是提高系统的性能和稳…

智能水表预付费管理系统

智能水表预付费管理系统是当前智能水表技术的重要应用之一&#xff0c;结合了智能化管理和预付费功能&#xff0c;为水务公司和用户提供了便捷、高效的用水管理解决方案。该系统利用先进的科技手段&#xff0c;实现了水表抄表、计费和管理的自动化&#xff0c;为用户带来更便捷…

Unicode/ASCII/UTF的关系(模板字面量、模板字符串、占位符)

字符串&#xff1a;编程时最重要的数据类型之一。 正则表达式&#xff1a;赋予开发者更多操作字符串的能力。 1、 Unicode和ASCII 1.1 概述 Unicode是ASCII字符编码的一个扩展&#xff0c;只不过在Windows中&#xff0c;用两个字节对其进行编码&#xff0c;也称为宽字符集&…

golang的channel探索

1、channel是什么&#xff1f; 管道或者是通道。字面意思也就是说是传输的通道或者是管道。 在 Go 语言中&#xff0c;channel 的关键字为 chan&#xff0c;数据流向的表现方式为 <- 分为两种模式&#xff1a; 双向– 表现形式为&#xff1a;chan T&#xff0c;即双向通道。…

nodejs使用axios获取url的图片信息并转换为base64

推荐一款AI网站&#xff0c; AI写作与AI绘画智能创作平台 - 海鲸AI | 智能AI助手&#xff0c;支持GPT4设计稿转代码 要使用axios库在Node.js中获取URL的图片信息并将其转换为Base64编码&#xff0c;首先需要安装axios。如果你还没有安装&#xff0c;可以使用以下命令来安装它&…

Docker安装mysql、redis、rabbitmq

【docker 安装mysql】 docker pull mysql:latest docker imagesdocker run -p 3306:3306 --name mysql --restartalways --privilegedtrue \ -v /usr/local/mysql/log:/var/log/mysql \ -v /usr/local/mysql/data:/var/lib/mysql \ -v /usr/local/mysql/conf:/etc/mysql \ -v …

取消退出流程控制方法

在自动化设备动作流程中&#xff0c;人为任意想取消当前动作&#xff0c;常见方法是使用全局变量&#xff0c;实时检测变量决定退出。这里介绍一个System.Threading空间下的 CancellationTokenSource类&#xff0c;他可以设置超时&#xff0c;设置信息等封装 基本使用超时和手…

反向传播和前向传播什么意思

在神经网络训练的上下文中&#xff0c;前向传播和反向传播是两个基本且关键的概念。 前向传播&#xff08;Forward Propagation&#xff09; 前向传播是神经网络中数据流向的第一步。在这个过程中&#xff0c;输入数据从输入层开始&#xff0c;逐层经过隐藏层&#xff0c;直至…

【粉丝福利第一期】小 明

Q1 - 能否自我介绍下&#xff1f; 嗨&#xff0c;大家好&#xff0c;我是 小 明 &#xff08;小明java问道之路&#xff09;&#xff0c;互联网大厂后端研发专家&#xff0c;2022博客之星TOP3/博客专家/CSDN后端内容合伙人、InfoQ(极客时间)签约作者、阿里云签约博主、全网5万…

GO单元测试的使用

Go语言中的测试依赖go test命令,go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内&#xff0c;所有以_test.go为后缀名的源代码文件都是go test测试的一部分&#xff0c;不会被go build编译到最终的可执行文件中。每个测试函数必须导入testing包,测试函数…

PBM学习——从基础到精通!!!

本专栏着重讲解PBM学习所得,学习笔记、心得,并附有视频素材资料,视频详细目录如下: PBM相关参数解释1 PBM相关参数解释2 PBM相关案例实践1 PBM相关案例实践2 PBM相关案例实践2 PBM相关案例实践3 PBM多相流中次相界面设置1 PBM多相流中次相界面设置2 欧拉多相流曳力1 欧拉多…

make/makefile

首先什么是make和makefile呢&#xff1f;先简单说&#xff0c;make是一条命令&#xff0c;makefile是一个文件&#xff0c;这个文件中存的是依赖关系和依赖方法&#xff0c;那么为什么会有这两个东西呢&#xff1f; 首先我们知道在VS2019中&#xff0c;我们可以直接创建一个工程…

474 一零和

题目 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。请你找出并返回 strs 的最大子集的长度&#xff0c;该子集中 最多 有 m 个 0 和 n 个 1 。如果 x 的所有元素也是 y 的元素&#xff0c;集合 x 是集合 y 的 子集 。示例 1&#xff1a;输入&#xff1a;strs ["1…

Linux系统中make/Makefile的介绍

文章目录 前言一、make命令二、makefile功能介绍1.makefile文件的编写格式2.hello.c文件内容3.makefile文件4.安装make命令 总结 前言 在linux系统中&#xff0c;我们对项目文件进行处理的时候会不方便&#xff0c;因此我们需要对文件的编译进行自动化处理。 下面就是在Linux系…

1、docker 基础命令

1、docker 运行镜像 docker run image tag 2、创建dockerfile&#xff08;构建容器的相关命令&#xff09; vim DockerFile 3、docker 构建容器镜像 docker build -t <image_name> . 4、docker 分层 5、查看镜像 docker images 6、docker 执行 docker run --name &…