XSS漏洞

漏洞描述

XSS全名叫Cross Site Scripting(跨站脚本攻击)因为简写和css同名所以改名为XSS,该漏洞主要利用javascript可以控制html,css,浏览器的行为从而恶意利用,当开发人员未对输入的内容进行过滤或编码时,恶意用户在能向网页提交信息的地方输入构造好的js恶意代码,从而触发XSS

漏洞原理

xss是对用户浏览器进行攻击的,当攻击者在能够触发xss漏洞的地方输入构造好的恶意js代码上传到服务器,在客户机浏览器进行访问被注入xss的网页时,浏览器就会解析并执行这段恶意代码就会遭受到xss攻击

漏洞场景

XSS漏洞一般发生的地方:

  • url传递参数的地方
  • 能收集用户输入的地方

漏洞评级

漏洞等级:高危

漏洞危害

  • 恶意弹窗广告,刷流量:攻击者可以利用XSS漏洞在受害者的浏览器中显示恶意广告或弹窗,从而扰乱用户体验并可能导致流量损失
  • 重定向流量:攻击者可以利用XSS漏洞将用户重定向到恶意网站,从而窃取用户的个人信息、敏感数据或者进行其他恶意操作
  • 盗取用户的cookie信息
  • 劫持用户会话执行任意操作
  • 传播蠕虫病毒
    等…

漏洞验证

利用存储型XSS获取cms 网站后台管理员Cookie攻击者登录后台
攻击机开启http服务

XSS(CrossSite Scripting,跨站脚本)漏洞是一种常见的网络安全漏洞,它允许攻击者在受害者的浏览器中执行恶意脚本。这种漏洞通常发生在Web应用程序中,当应用程序未对用户输入的数据进行充分验证和转义时,攻击者可以注入恶意代码,这些代码在其他用户访问包含这些恶意代码的页面时被执行。

 XSS漏洞的类型

1. 存储型XSS(Stored XSS):
   攻击者将恶意脚本存储在目标服务器上,例如在论坛帖子、用户评论或个人资料中。当其他用户访问包含这些恶意脚本的页面时,脚本会在他们的浏览器中执行。

2. 反射型XSS(Reflected XSS):
   恶意脚本不存储在服务器上,而是通过URL参数或其他用户输入的方式即时注入到响应中。用户点击包含恶意脚本的链接时,脚本会在他们的浏览器中执行。

3. DOM型XSS(DOMbased XSS):
   这种类型的XSS漏洞涉及客户端的JavaScript代码,其中用户的输入直接用于修改页面的DOM环境。攻击者可以通过修改页面的DOM结构来执行恶意脚本。

 XSS攻击的影响

XSS攻击可能导致以下问题:
 窃取用户信息:攻击者可以窃取用户的会话cookie,从而冒充用户身份。
 篡改网页内容:攻击者可以修改网页内容,显示虚假信息或误导用户。
 钓鱼攻击:通过在合法网站上注入恶意内容,诱导用户提供敏感信息。
 传播恶意软件:攻击者可以在用户浏览器中执行恶意代码,下载和安装恶意软件。

 防御措施

为了防止XSS攻击,可以

取以下措施:
 输入验证:对所有用户输入进行验证,确保只接受预期的数据格式和类型。
 输出编码:在将用户输入显示在网页上之前,进行适当的编码,以防止脚本执行。
 使用HTTP头部:如Content Security Policy (CSP),限制网页中可以执行的脚本来源。
 设置Cookie安全属性:使用`HttpOnly`和`Secure`属性,减少通过脚本访问cookie的风险。
 定期更新和打补丁:确保所有软件和库都是最新的,以减少安全漏洞。

XSS漏洞的防御需要开发者和网站管理员的高度重视,通过实施多层次的安全措施,可以有效减少这类攻击的风险。

1.反射性xss

反射型XSS也被称为非持久性XSS,当用户访问一个带有XSS代码的HTML请求时,服务器端接收数据后处理,然后把带有XSS的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,就造成XSS漏洞,这个过程就像一次反射,所以叫反射型XSS。

例如

 
  1. <?php

  2. echo $_GET["id"];

  3. ?>

可以通过修改id的值构造语句来攻击,例如

id=<script> alert(1) </script>

2.储存性xss

存储型XSS又被称为持久性XSS,存储型XSS是最危险的一种跨站脚本漏洞,当攻击者提交一段 XSS代码后,被服务端接收并存储,当攻击者或用户再次访问某个页面时,这段XSS代码被程序读出来响应给浏览器,造成XSS跨站攻击,这是存储型XSS。

三.xss漏洞例题

找了很多网站发现xss的题实在是有点少只找到了test.ctf8.com这个网站,

第一关:

 应该是要回显直接构造

<script>alert('abc')</script>

 成功(这个网站成功就是回显完成的不错)

第二关 

点了搜索发现submit有变化应该是要闭合前面语句于是F12

 于是payload

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

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

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

相关文章

苍穹外卖①

1.BeanUtils.copyProperties(orders,orderVO); BeanUtils.copyProperties 是 Java 中 Apache Commons BeanUtils 库的一个方法&#xff0c;它用于将一个 Java Bean 的属性复制到另一个 Java Bean。这个方法非常适合于对象之间的属性复制&#xff0c;尤其是当源对象和目标对象的…

云服务器上部署Kubernetes集群(K8S)

master节点&#xff1a;master node节点&#xff1a;node1 由于是ubuntu系统&#xff0c;参考两个博客配置 安装vmware搭建k8s集群&#xff08;亲试无坑&#xff09;-CSDN博客 该博客是centos系统&#xff0c;所以稍微有点区别结合另一篇博客一起参考 kubernetes集群…

scrapy进阶(豆瓣新书速递)(比亚迪)

scrapy数据建模与请求 学习目标&#xff1a; 应用 在scrapy项目中进行建模应用 构造Request对象&#xff0c;并发送请求应用 利用meta参数在不同的解析函数中传递数据scrapy构造post请求 1. 数据建模 通常在做项目的过程中&#xff0c;在items.py中进行数据建模 1.1 为什么建…

gt.qpa.xcb: could not connect to display : 1

报错解释&#xff1a; 这个错误通常发生在使用X11&#xff08;X Window System&#xff09;的Linux环境中&#xff0c;当尝试启动一个基于Qt平台的应用程序时。错误信息表明程序无法连接到X服务器显示设备&#xff0c;原因可能是没有正确设置DISPLAY环境变量&#xff0c;或者用…

【Spring security】【pig】Note03-pig token令牌解析器过程

&#x1f338;&#x1f338; pig token令牌解析器过程 &#x1f338;&#x1f338; pig后端源码 一、解析请求中的令牌值。 二、验证令牌 内省并验证给定的令牌&#xff0c;返回其属性。返回映射表示令牌有效。 /*** author lengleng* date 2019/2/1 扩展用户信息*/ publi…

Hot100-栈

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; class Solution {public boolean isValid(String s) {//用map的键值对匹配左右括号//按照顺序&#xff0c;先匹配的是左括号&#xff0c;所以栈里面放左括号HashMap<Character, Character> rlationship new Has…

deepinlinuxv23b3用lazarus3.2开发生成2维码

下载&#xff1a; https://sourceforge.net/projects/lazarus/files/ 最新版3.2.2的fpc,3.2的lazarus sourceforge默认下载慢&#xff0c;选择auto-select能够选择近的镜像站点&#xff0c;还不行的话也能够motrix下载会自动更换域名 linux的qrencode安装是 sudo apt…

跨境小白shopee被封号的原因?如何有效预防?

提到跨境电商平台&#xff0c;大家都知道亚马逊、Temu、TikTok shop这些是比较大的电商平台。但最近几年&#xff0c;在东南亚市场上&#xff0c;Shopee虾皮却是颇负盛名的一个跨境电商平台&#xff0c;这也让众多中国跨境小白蜂拥而至。目前shopee的商家正在不断增多&#xff…

[力扣题解] 130. 被围绕的区域

题目&#xff1a;130. 被围绕的区域 思路 代码 Method 1 : 深度优先搜索&#xff0c;自己写的 class Solution { private:int dir[4][2] {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};void dfs(vector<vector<char>>& board, vector<vector<bool>>&am…

vue3第三十四节(TS 之 interface 与 type 的异同)

1、interface 接口只能定义描述对象类型 如&#xff1a; interface PersonIn {name: string;age:number;job:string; }// 定义函数 interface FPerson {(a: number, b:string) > void }2、类型别名 type则可以定义多种类型 如&#xff1a; type userName string type…

DeepDriving | CUDA编程-02: 初识CUDA编程

本文来源公众号“DeepDriving”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;CUDA编程-02&#xff1a; 初识CUDA编程 上一篇文章DeepDriving | CUDA编程-01&#xff1a; 搭建CUDA编程环境-CSDN博客介绍了如何搭建CUDA编程环境&a…

选择、快排、堆排序、归并

选择排序 排序的核心是&#xff1a;在未排序的序列中&#xff0c;把未排序第一个元素和未排序的最小元素交换位置。 因此&#xff0c;设计时&#xff0c;显然要设置两重 for 循环 假设未排序的第一个元素称为 a &#xff0c; 未排序的最小元素称为 b 第一重 for 循环控制总…

web压力测试,要不要过滤掉JS,CSS等请求?

在进行性能测试&#xff08;压测&#xff09;时&#xff0c;是否过滤掉对JavaScript、CSS等静态资源的请求&#xff0c;取决于你测试的目标和目的。 是测试服务端的性能还是前端的性能。这两种目的所涉及到的测试场景和工具等方法是不一样的。 一般的web产品&#xff0c;像cs…

java 8--Lambda表达式,Stream流

目录 Lambda表达式 Lambda表达式的由来 Lambda表达式简介 Lambda表达式的结构 Stream流 什么是Stream流&#xff1f; 什么是流呢&#xff1f; Stream流操作 中间操作 终端操作 Lambda表达式 Lambda表达式的由来 Java是面向对象语言&#xff0c;除了部分简单数据类型…

利用kubeadm安装k8s集群 以及跟harbor私有仓库下载镜像

目录 环境准备 master&#xff08;2C/4G&#xff09; 192.168.88.3 docker、kubeadm、kubelet、kubectl、flannel node01&#xff08;2C/2G&#xff09; 192.168.88.4 docker、kubeadm、kubelet、kubectl、flannel node02&#xff08;…

2024中青杯数学建模竞赛B题药物属性预测思路代码论文分享

2024年中青杯数学建模竞赛B题论文和代码已完成&#xff0c;代码为B题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解&#xff09;、模型…

QT调用Tinyxml2库解析XML结构文件

在学习SVG结构的时候&#xff0c;发现SVG结构可以通过以XML文件直接解析&#xff0c;所以就去了解了Tinyxml2库的使用&#xff0c;相关教程也比较多。 个人感觉Tinyxml2库比官方的XML解析库更好用&#xff0c;这里做个技术总结&#xff0c;记录Tinyxml2库解析XML文件结构的简单…

【Linux取经路】一个简单的日志模块

文章目录 一、可变参数的使用二、Log2.1 日志打印2.1.1 时间获取2.1.2 日志分块打印 2.2 打印模式选择2.3 Log 使用样例2.4 Log 完整源码 三、结语 一、可变参数的使用 int sum(int n, ...) {va_list s; // va_list 本质上就是一个指针va_start(s, n); int sum 0;while(n){su…

为什么以太网适配器不是192.168而是196.254【笔记】

为什么以太网适配器不是192.168而是196.254【笔记】 前言版权为什么以太网适配器不是192.168而是196.254最后 前言 2024-03-12 22:55:34 公开发布于 2024-5-22 00:20:35 以下内容源自《【笔记】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CS…

Linux: tools: crash: not a supported file format

这个原因是,通过比对每个format的magic数值,或者其他的信息,来看是否属于某个format,如果都不符合,就会出现这个错误。说明kernel的coredump文件,dump的有些问题。 main (argc=3, argv=0x7fffffffda88) at main.c:496 496 } else if (is_compressed…