当前位置: 首页 > news >正文

xss基础

目录标题

      • 一、XSS的原理
      • 二、XSS漏洞分类
        • 1、反射型xss
        • 2、存储型XSS
        • 3、基于DOM的XSS
      • 三、XSS漏洞的危害及验证
      • 四、XSS漏洞的黑盒测试
      • 五、XSS漏洞的白盒测试

一、XSS的原理

跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击!

二、XSS漏洞分类

1、反射型xss

反射型XSS是非持久性、参数型的跨站脚本。反射性XSS的JS代码在Web应用的参数(变量)中,如搜索框中,提交PoC[scriptalert(/xss/)/script],单击搜索,即可触发反射型XSS。这时就会注意到,我们提交的poc会出现在search.php页面的keywords参数中。
在这里插入图片描述

2、存储型XSS

存储型XSS是持久性跨站脚本。持久性体现在XSS代码不是在某个参数(变量)中,而是写进数据库或文件等可以永久保存数据的介质中。存储型XSS通常发生在留言板等地方。我们在留言板位置留言,将恶意代码写进数据中。此时,我们只完成了第一步,将恶意代码写入数据库。因为XSS是的JS代码,JS代码运行的环境是浏览器,所以需要浏览器从服务器载入恶意的XSS代码,才能真正触发XSS。此时,需要我们模拟网站后台管理员的身份,查看留言。
在这里插入图片描述

3、基于DOM的XSS

DOM的XSS比较特殊。owasp关于DOM型号XSS的定义是基于DOM的XSS是一种XSS攻击,其中攻击的payload由于修改受害者浏览器页面的DOM树而执行的。其特殊的地方就是payload在浏览器本地修改DOM树而执行,并不会传到服务器上,这也就使得DOM XSS比较难以检测。

三、XSS漏洞的危害及验证

在这里插入图片描述
我们可以使用一段简单代码,验证和检测漏洞的存在,这样的代码叫做PoC(Proof of Concept)。验证XSS漏洞存在的PoC如下:

(1)scriptalert(/xss/)/script
(2)scriptconfirm('xss')/script
(3)scriptprompt('xss')/script

四、XSS漏洞的黑盒测试

尽可能找到一切用户可控并且能够输出在页面代码中的地方,比如下面这些:
URL的每一个参数、URL本身、表单、搜索框、常见业务场景
重灾区:评论区、留言区、个人信息、订单信息等
针对性:站内信、网页即时通讯、私信、意见反馈
存在风险:搜索框、当前目录、图片属性等

五、XSS漏洞的白盒测试

关于XSS的代码审计主要就是从接收参数的地方和一些关键词入手。
PHP中常见的接收参数的方式有$GET、$POST、$_REQUEST等等,可以搜索所有接收参数的地方。然后对接收到的数据进行跟踪,看看有没有输出到页面中,然后看输出到页面中的数据是否进行了过滤和html编码等处理。
也可以搜索类似echo这样的输出语句,跟踪输出的变量是从哪里来的,我们是否能控制,如果从数据库中取的,是否能控制存到数据库中的数据,存到数据库之前有没有进行过滤等等。
大多数程序会对接收参数封装在公共文件的函数中统一调用,我们就需要审计这些公共函数看有没有过滤,能否绕过等等

相关文章:

xss基础

目录标题一、XSS的原理二、XSS漏洞分类1、反射型xss2、存储型XSS3、基于DOM的XSS三、XSS漏洞的危害及验证四、XSS漏洞的黑盒测试五、XSS漏洞的白盒测试一、XSS的原理 跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(…...

移动WEB开发二、流式布局

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…...

分享在线预约系统制作步骤_在线预约链接怎么做

在微信小程序上进行在线预约,不管是商家还是顾客,都可以自由选择时间,顾客还可以通过预约小程序,了解到所选服务的详情和功能特色,不必等到去店内听介绍,顾客能节省等候时间,商家能解放招待人力…...

【每日一题Day125】LC1326灌溉花园的最少水龙头数目 | 动态规划 贪心

灌溉花园的最少水龙头数目【LC1326】 在 x 轴上有一个一维的花园。花园长度为 n,从点 0 开始,到点 n 结束。 花园里总共有 n 1 个水龙头,分别位于 [0, 1, ..., n] 。 给你一个整数 n 和一个长度为 n 1 的整数数组 ranges ,其中 …...

C# FFmpeg推流Vlc.DotNet拉流优化参数

FFmpeg是流媒体开源神器,视频转换、剪裁包括推流,无所不能,很多系统都是基于其开发的。拉流可以用FFplay,但是不利于集成到自己的代码中,因此拉流选择了Vlc.DotNet。 在使用中,仅使用默认参数,…...

pnpm v8版本升级变化关注点(前瞻速攻版)

前言 pnpm v8.0.0-alpha.0 版本已经发布,包含少量变化,但其中还是有令人在意的点的。 本文将默认读者拥有大部分 pnpm v7 版本的知识储备,进行 v8 版本的前瞻速攻。 安装方法 目前通过指定 Tag 方式可以安装 v8 alpha 版: npm…...

Python基础-环境安装

Python安装1.下载PythonPython网址:https://www.python.org/进入Python官网,点击Downloads,选择自己对应的操作系统(此处以Windows为例)在左侧的稳定发行版中,选择一个3.5版本以上的,然后点击对…...

重载、重写、重构概念辨析

首先,重载、重写、重构都表现为方法名相同 重载 重载(overload),表示同一类的方法之间的关系,至少有以下其中一种情况 参数个数不同参数类型不同参数顺序不同 注意,返回值类型不同不能作为重载依据 重…...

第九章 - 多表查询(join,left join 等)与合并查询(union union all)

第九章 - 多表查询(join,left join 等)与合并查询(union)交叉链接(笛卡尔积)内连接查询外连接查询左链接: left join右链接:right join组合查询 union & union all使…...

matplotlib学习笔记(持续更新中…)

目录 1. 安装,导入 2. figure,axes(图形,坐标图形) 2.1 figure对象 2.2 axes对象 2.3 代码演示 2.3 subplot() 方法 3. 图表的导出 3.1 savefig() 方法 3.2 代码演示 1. 安装,导入 pip install m…...

STM32 SystemInit()函数学习总结

拿到程序后如何看系统时钟?User文件夹——system_stm32f4xx程序,先找systemcoreclock(系统时钟)但是这里这么多个系统时钟应该如何选择?点击魔法棒,然后点击C/C可以看到define的是F40_41XXX.USE这一款 ,对应着就找出了…...

【Spring Boot 原理分析】- 自动配置

【Spring Boot 原理分析】- 自动配置 Condition 注解 Condition 是 Spring 4.0 增加的条件判断功能,通过这个功能可以实现选择的创建 Bean 操作 👑 我们在使用 Spring 的时候,只需导入某个依赖的坐标,就可以直接通过 Autwired 注…...

简明易懂的JVM理解

文章目录简明易懂的JVM和GC理解写在前面Java虚拟机(JVM)的组成基本介绍结构类加载子系统(ClassLoader SubSystem)介绍类加载过程类加载过程小结双亲委派模型(Parent-Delegation Model)简介优点Java9的类加载的委派关系变动双亲委派模型小结运行时数据区(Runtime Data Areas)介绍…...

新考纲下的PMP考试有多难?

PMP考试在6月25号考试结束后,在网上引起一片哗然,新考纲领域与考点的转变使得考试难度加大:PMP考试敏捷和混合内容比重大,考试难度加大很多;考题更加注重考生的知识应用能力,领域更宽; 接下来我…...

朗润国际期货:知名投行/大佬打Call记

知名投行/大佬打Call记 2023年知名投行/大佬看好哪些投资标的 中国股市 高盛(2023年1月):将上涨15% 花旗(2023年1月):上半年会成为投资两点 摩根大通(2022年11月):M…...

遗传算法及Python实现

0 建议学时 4学时 1 人工智能概述 2020中国人工智能产业年会在苏州召开,会上发布的《中国人工智能发展报告2020》显示,过去十年(2011-2020) ,中国人工智能专利申请量达389571件,占全球总量的74.7%,位居世界第一。 报…...

零基础 Ubuntu 20.04.01 下搭建51单片机开发环境[开源编译器SDCC]

原创首发于CSDN,转载请注明出处,谢谢! 文章目录为何会在Linux下开发单片机个人系统环境与所用开发板安装开源编译器 sdccSTC MCU ISP 闪存工具 stcgal 的安装单片机代码的编译与测试|编写主代码 main.c|使用 sdcc 编译…...

手摸手快速入门 正则表达式 (Vue源码中的使用)

vue2源码 在 vue2 源码的 src\compiler\parser\html-parser.js 文件中 里面有大量的正则表达式,如下图 可以看到非常的长,不是我说,就前几行,如果没有相关的 正则表达式 的工具,我可能就被劝退了😭 这里…...

TCP/IP网络协议族分成及其每层作用

1、可以分为应用层、传输层、网络层、链路层 2、各层的作用 应用层(可以想象成是快递打包过程) 决定了向用户提供应用服务时通信的活动,将要进行的操作或者数据进行一个打包。 传输层(可以理解为选择顺丰、圆通等快递公司) 提供数据传输的方…...

041、子序列类型问题(labuladong)

子序列类型问题 一、经典动态规划:编辑距离 基于labuladong的算法网站,经典动态规划:编辑距离; 总结: 一般来说涉及到两个字符串的问题,需要依赖上一次的各种操作,一般使用dp table&#xff…...

用STM32和GP2Y1014AU0F做个空气质量检测仪(附完整代码和接线图)

基于STM32的空气质量检测仪实战开发指南 最近几年,随着人们对健康生活环境的关注度不断提升,空气质量监测设备正从专业领域走向大众消费市场。作为一名嵌入式开发爱好者,我发现市面上的商用检测仪要么价格昂贵,要么功能单一&#…...

AFE模拟器设计实战:基于ADI系列芯片的ISOSPI菊花链通信仿真

1. ISOSPI菊花链通信的基础原理 在汽车和储能BMS系统中,电池管理芯片(AFE)之间的可靠通信至关重要。ADI公司的ADBMS系列和LTC系列芯片广泛采用ISOSPI(隔离SPI)菊花链拓扑结构,这种设计既能保证通信速率,又能实现高压隔离。我刚开始接触这个技…...

DLSS Swapper终极指南:5分钟掌握游戏性能优化新技能

DLSS Swapper终极指南:5分钟掌握游戏性能优化新技能 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾因游戏帧率不足而烦恼?是否想尝试新版本DLSS却担心兼容性问题?DLSS Swap…...

Zotero GPT插件全攻略:打造智能化文献管理工作流

Zotero GPT插件全攻略:打造智能化文献管理工作流 【免费下载链接】zotero-gpt GPT Meet Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-gpt 学术研究中,文献管理往往耗费研究者大量时间与精力。Zotero GPT插件将人工智能技术与文献…...

palworld-host-save-fix:跨环境存档迁移的技术突破与实践指南

palworld-host-save-fix:跨环境存档迁移的技术突破与实践指南 【免费下载链接】palworld-host-save-fix 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-host-save-fix 一、问题溯源:幻兽帕鲁存档迁移的核心挑战 核心价值:深…...

Graphormer开源模型多场景落地:高校科研、药企CADD、新材料研发实操路径

Graphormer开源模型多场景落地:高校科研、药企CADD、新材料研发实操路径 1. 项目概述 Graphormer是一种基于纯Transformer架构的图神经网络模型,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计。该模型在OGB、PCQM4M…...

Termius Pro功能免费解锁指南:修改background-process.js实现永久订阅

Termius订阅机制解析与安全使用建议 Termius作为一款广受开发者欢迎的SSH客户端工具,其Pro版本提供了诸多实用功能。本文将深入探讨Termius的订阅验证机制工作原理,并从技术角度分析如何安全合规地使用该工具。 1. Termius订阅机制技术解析 Termius采用典…...

OpenClaw性能对比测试:Qwen3-4B与Qwen3-32B模型任务执行效率

OpenClaw性能对比测试:Qwen3-4B与Qwen3-32B模型任务执行效率 1. 测试背景与目标 最近在本地部署OpenClaw时遇到了一个实际选择难题:作为个人开发者,到底该选择Qwen3-4B这样的轻量模型,还是直接上Qwen3-32B这样的"大家伙&qu…...

利用快马平台快速构建403 forbidden错误演示原型,直观理解HTTP权限状态

今天在调试一个前端项目时,遇到了403 forbidden错误,突然想到可以做个简单的演示原型来帮助团队新人理解这个常见的HTTP状态码。正好最近在用InsCode(快马)平台做各种小demo,发现它特别适合快速搭建这类教学演示项目。 理解403状态码的核心场…...

【Java低代码组件调试黄金法则】:20年架构师亲授5大高频故障定位技巧,90%开发者从未听说

第一章:Java低代码组件调试的本质与认知跃迁Java低代码平台并非屏蔽复杂性,而是将复杂性重新封装、可视化与可追溯化。调试低代码组件的本质,是穿透表层拖拽逻辑,定位其背后生成的Java字节码、Spring Bean生命周期行为、以及运行时…...