XSS漏洞基本概念

news2025/1/19 11:36:40

目录

XSS的原理和分类

XSS漏洞分类

dom

存储型

XSS的危害 

XSS漏洞的验证

XSS的黑盒测试

XSS漏洞的白盒测试


XSS的原理和分类

xss全称跨站脚本攻击xss(Cross Site Scripting) 为了不和层叠样式表Cascading Style Sheets, CSS)的缩写混淆,把跨站脚本攻击缩写为xss

xss产生的原因是因为程序过滤的不完善导致用户输入危险代码,在html页面执行

主要分两大类:反射性(普通反射型、dom型)和存储型


XSS漏洞分类

反射性

        反射性xss 一次性(非持久) 

流程:

1.发送带有xss恶意脚本连接

2.用户点击了恶意连接,访问了目标服务器

3.网站将xss同正常页面返回到用户浏览器

4.用户浏览器解析了网页中的xss恶意代码,向恶意服务器发起请求

5.黑客从自己搭建的恶意服务器中获取用户提交的信息

 

dom

基于dom的xss是一种xss攻击,其中攻击的payload由于修改的是浏览器本地的dom树而执行,并不会传到服务器上,这也使得dom型xss比较难以检测

存储型

存储型xss是一种持久型跨站脚本,他的xss代码不是写在某个参数(变量)中,而是写进数据库或文件等可以永久保存的介质中。存储型xss通常出现在留言板中,我们在留言板留言,将恶意代码写进数据库中,此时我们只完成了第一步,因为xss使用的是js代码,js代码运行环境是浏览器,我们需要浏览器从服务器中载入恶意代码,才能触发真正的xss。


XSS的危害 

针对用户:

        盗取cookie

        网络钓鱼

        放马挖矿

        广告刷流量

针对web服务:

        劫持后台

        传播蠕虫

        篡改页面

        内网扫描


XSS漏洞的验证

我们可以用简单的代码进行验证,这样的代码叫做PoC(Proof of Concept)

<script>alert(1)</script>
<a href="javascript:alert(1)">aaa</a>
<img src=1 onerror="alert(1)">

XSS的黑盒测试

尽可能找到一些用户可控的并且能够输出在页面代码中的地方,比如:

URL的每一个参数、URL本身、表单、搜索框、常见业务等场景

重灾区:评论区、留言区、个人信息、订单信息等

针对型:站内信、网页即时通讯、私信、意见反馈

存在风险:搜索框、当前目录、图片属性等


XSS漏洞的白盒测试

关于XSS代码审计的地方着重于接收参数的地方和关键字入手

php中常见的接受参数的方式有$GET、$POST、$_REQUEST等,可以搜索所有接受参数的地方。然后对接受到的数据进行跟踪,看看有没有输出到页面中,然后看输出到页面中的代码有没有被过滤和html编码处理

也可以搜索类似echo的输出语句,看是从哪里来的,我们能否控制,如果从数据库来,我们能否控制数据库中的数据,存到数据库之前有没有进行过滤

大多数程序会统一调用封装在公共文件的函数,我们需要审计这些公共函数看有没有过滤,绕过的可能。

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

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

相关文章

MCU实现对外部脉冲信号的计数功能

有的传感器会输出脉冲信号&#xff0c;MCU需要统计脉冲输入的个数&#xff0c;通常有如下实现方式&#xff1a; 1.GPIO中断 原理很简单&#xff0c;利用GPIO的上升沿或者下降沿中断&#xff0c;进中断的次数就是脉冲的个数。只需要在中断服务函数里计数即可。 使用GPIO中断需…

Streaming System是第一章翻译

GIthub链接&#xff0c;欢迎志同道合的小伙伴一起翻译 Chapter 1.Streaming101 如今&#xff0c;流数据处理在大数据中是非常重要的&#xff0c;其主要原因是&#xff1a; 企业渴望对他们的数据有更及时的了解&#xff0c;而转换到流处理是实现更低延迟的一个好方法&#xf…

使用vite+vue3.0 创建一个cesium基础应用 ----01 项目搭建

使用vitevue3.0 创建一个cesium基础应用 ----01 项目搭建 1.使用yarn创建一个vite项目 我们可以在vite官网找到vite创建项目的命令 https://cn.vitejs.dev/ 可以使用yarn创建项目选择使用vue3.0框架&#xff0c;语言使用js 创建完成后结构如下&#xff1a; 2.找到vite社区中的…

idea通过Dockerfile上传项目到服务器

Docker通过Dockerfile上传项目 文章目录Docker通过Dockerfile上传项目1.创建一个简单的springBoot项目2.写一个简单的接口3.写Dockerfile文件4.新建docker镜像5.上传代码运行1.创建一个简单的springBoot项目 点击文件–>新建–>项目 点击选择Spring Initializer &#x…

火山引擎 DataTester:A/B 实验如何实现人群智能化定向?

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 在精细化运营时代&#xff0c;用户需求和业务场景愈加多元&#xff0c;在产品功能迭代以及各类活动中&#xff0c;面向不同人群的兴趣点&#xff0c;有针对性地“精…

导师信息管理系统

技术&#xff1a;Java、JSP等摘要&#xff1a;随着我国教育产业化的飞速发展&#xff0c;社会对教育水平和教学管理软硬件的要求日益提高&#xff0c;尤其是对一个学校能够具有一整套的管理软件提出了更多的要求。为了适应这种形式&#xff0c;教育系统尤其是大学不仅首先要有坚…

小成本互联网创业怎么做?低成本创业的方法分享

多数人都会有想法创业&#xff0c;尤其是在互联网上面创业&#xff0c;很多人看到了商机&#xff0c;但是因为成本的原因又放弃了&#xff0c;实际上&#xff0c;小成本也可以互联网创业&#xff01;那么&#xff0c;小成本互联网创业怎么做&#xff1f;低成本创业的方法在这里…

【React】React——redux

&#x1f6a9;&#x1f6a9;&#x1f6a9; &#x1f48e;个人主页: 阿选不出来 &#x1f4a8;&#x1f4a8;&#x1f4a8; &#x1f48e;个人简介: 一名大二在校生,学习方向前端,不定时更新自己学习道路上的一些笔记. &#x1f4a8;&#x1f4a8;&#x1f4a8; &#x1f48e;目…

Java 数据类型

数据类型用于对数据归类&#xff0c;以便开发者理解和操作。 基本数据类型 Java 确定了每种基本数据类型所占存储空间的大小&#xff0c;不会像其它语言那样随机器硬件架构的变化而变化&#xff0c;这使 Java 程序更具可移植性。 Java 中定义了如下的基本数据类型。 byte …

【MobileNet V2】MobileNet V2

目录1、简介2、论文创新点1&#xff09;倒残差结构 -- Inverted residual block2&#xff09;ReLU63、网络结构文献名称&#xff1a;MobileNetV2: Inverted Residuals and Linear Bottlenecks 发表时间&#xff1a;2018年 下载地址&#xff1a;https://openaccess.thecvf.com/c…

Vue基础入门讲义(四)-组件化

文章目录1.引言2.定义全局组件3.组件的复用4.局部注册5.组件通信5.1.父向子传递props5.2.传递复杂数据5.3.子向父的通信1.引言 在大型应用开发的时候&#xff0c;页面可以划分成很多部分。往往不同的页面&#xff0c;也会有相同的部分。例如可能会有相同的头部导航。 但是如果…

第二章SpringBoot基础学习

文章目录SpringBoot依赖管理特性依赖管理开发导入starter场景启动器SpringBoot自动配置特性自动配好Tomcat自动配好SpringMVC默认的包结构各种配置拥有默认值按需加载所有自动配置项SpringBoot注解底层注解ConfigurationImport导入组件Conditional条件装配ImportResource导入Sp…

Python入门自学进阶-Web框架——33、瀑布流布局与组合查询

一、瀑布流&#xff0c;是指页面布局中&#xff0c;在显示很多图片时&#xff0c;图片及文字大小不相同&#xff0c;导致页面排版不美观如上图&#xff0c;右边的布局&#xff0c;因为第一行第一张图片过长&#xff0c;第二行的第一张被挤到第二列了。示例&#xff1a;def flow…

大数据框架之Hadoop:MapReduce(八)常见错误及解决方案

1、导包容易出错。尤其Text和CombineTextInputFormat。 2、Mapper中第一个输入的参数必须是LongWritable或者NullWritable&#xff0c;不可以是IntWritable. 报的错误是类型转换异常。 3、java.lang.Exception: java.io.IOException: Illegal partition for 13926435656 (4)&…

51单片机LCD1602的使用

文章目录前言一、LCD1602简单介绍二、LCD1602中各个引脚的作用四、LCD1602命令解析1.写命令2.写数据3.清屏指令4.光标归位指令5.进入模式设置指令6.显示开关控制指令7.设定显示屏或光标移动方向指令三、LCD1602代码编写四、代码测试总结前言 本篇文章将为大家讲解LCD1602的使用…

CPU扫盲-CPU如何执行指令以及流水线技术

在CPU扫盲-CPU与指令集中阐述了CPU与指令集之间的关系&#xff0c;并在CPU扫盲-自研指令集中以创造者的身份深入讲解了指令集&#xff0c;这篇文章则是针对CPU的专场&#xff0c;以x86架构下的CPU为例具体分析一下CPU如何执行指令。 计算机基本硬件由控制器、储存器、运算器、输…

基于java的五子棋游戏设计

技术&#xff1a;Java、JSP等摘要&#xff1a;随着互联网迅速的发展&#xff0c;网络游戏已经成为人们普遍生活中不可或缺的一部分&#xff0c;它不仅能使人娱乐&#xff0c;也能够开发人的智力&#xff0c;就像本文所主要讲的五子棋游戏一样能挖掘人们聪明的才干与脑袋的机灵程…

【大数据 AI 人工智能】数据科学家必学的 9 个核心机器学习算法

如今,机器学习正改变着我们的世界。借助机器学习(ML),谷歌在为我们推荐搜索结果,奈飞在为我们推荐观看影片,脸书在为我们推荐可能认识的朋友。 机器学习从未像在今天这样重要。但与此同时,机器学习这一领域也充斥着各种术语,晦涩难懂,各种机器学习的算法每年层出不穷…

思科2.7.6 Packet Tracer - Implement Basic Connectivity(作业)

Packet Tracer - 实施基本连接地址分配表目标第 1 部分&#xff1a;对 S1 和 S2 执行基本配置第 2 部分&#xff1a;配置 PC第 3 部分&#xff1a;配置交换机管理界面背景信息在这个练习中&#xff0c;您会首先执行基本的交换机 配置。然后您会通过在交换机和 PC 上配置 IP 编址…

【C++】string

【C修炼秘籍】string 目录 【C修炼秘籍】string 文章目录 前言 一、标准库里的string 二、string常用接口功能简介&#xff08;具体使用和底层转到模拟实现&#xff09; 1、string类的常见构造函数 2、string类对象的容量操作 3、string类对象的访问及遍历操作 4、 string类对象…