xss笔记与打靶(更新中)
这个文章好
https://blog.csdn.net/huangyongkang666/article/details/123624164?fromshare=blogdetail&sharetype=blogdetail&sharerId=123624164&sharerefer=PC&sharesource=2401_88818565&sharefrom=from_link
什么是xss
XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的网络安全漏洞,攻击者在网页中嵌入客户端脚本,通常是js编写的危险代码,当用户使用浏览器浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。XSS 通常用于窃取用户信息、会话劫持、篡改网页内容或传播恶意软件。
如:盗取网站保存的cookie登陆其他用户,摄像头拍照
- 需要有xss接受平台
- 生成一段js文件
- 找到由xss漏洞的地方,植入js
- 等待受害者访问
发送的网址不要点,用虚拟机点
相关问题
网站:正常网站(有xss漏洞)
xss平台:js文件下载
客户端浏览器
js执行
js可以操作cookie
跨站脚本攻击:执行了其他网址上的恶意js文件
如何区别是不是同一个网站:
https
http
浏览器根据同源策略判断这两个是不是同一个网站
同源策略:
协议 + 主机(域名/IP) + 端口,任何一个地方不一样就不是同一个网站
浏览器是根据同源策略来单独存储每一个网站的cookie
漏洞产生原因
前端传入的数据没有做处理,变成了html的一部分来处理
处理指的是编码处理。
将<变成了<
在html语言里很注重<>
如何让语句里出现尖括号,用html实体符号
| 显示结果 | 描述 | 实体名称 | 实体编号 |
|---|---|---|---|
| 空格 | |   | |
| < | 小于号 | < | < |
| > | 大于号 | > | > |
xss漏洞的危害
- 对于访问量小的网站,发生xss漏洞没什么用。一般在各类的社交平台,邮件系统,开源流行的web应用,博客等。造成的杀伤力十分强大。
- 劫持用户cookie是常见的跨站攻击形式,通过在网页中写入并执行脚本执行文件(多数情况下是js脚本代码),劫持用户浏览器,将用户当前使用的sessionID信息发送到攻击这控制的网站或服务器中
- “框架钓鱼”,利用js脚本的基本功能之一:操作网页的DOM树结构和内容,在网页中通过js脚本,生成虚假的页面,欺骗用户执行操作,而用户所有的输入内容会被发送到攻击者的服务器上。
- 挂马(水坑攻击)
- 有局域性的键盘记录
xss分类
- 反射型
- 存储型
- DOM型
挖漏洞,点到为止用alter()
反射型
中危漏洞
把http请求发送后又回到客户端前端代码中。
必须要点击url,http
别乱点什么别人发的网址
出现位置:搜索框
存储型
留言,到数据库
先有一个人,把数据存进数据库,又有人访问时,将数据库里的数据返回到客户端浏览器。
高危漏洞。
进入网站就触发
DOM型
js代码弹窗
alert
href
prompt(1)
能看懂前端js代码,不需要给服务器发http请求
xss漏洞存在位置
- 搜索框
- 登录框
- 发表评论/发表文章
- 其他输入框
常见的执行xss的html标签
xss执行方法:
- 使用
<script>alert(111)</script>
有的客户端会有过滤,将script替换为空 - 用
<img src=xx onerror="alert(111)"> <a href=xx onclick="alert(111)"></a><svg olnload="alert(111)">- 可以去网上搜索‘
xss防御
xss防御的总体思路是:对输入进行过滤,单引号,双引号,尖括号之类,对输入进行编码
过滤:根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字
转义:所有输出到前端的数据都是根据输出点进行转义,比如输入到html中进行html实体转义,输入到js里面的进行js转义
xss之href输出绕过:javascript:alert(111),直接带入a标签href里面一样可以绕过htmlspecialchars,如果没有用户提交的数据交给a标签,其实很难绕过
xss-labs
1
url?name=
2 转义
再试一下1没成功
看到网页源码,发现特殊符号没有转义
"> <script>alert()</script>
3 onclick
先试一下
看看源代码,这里是单引号闭合,并且符号被实体化
htmlspecialchars()函数将一些预定义的字符转换为html实体
没对’设置,可以用onfocus或者onclick
js’ οnclick=‘alert(111)’
'将value闭合
但是我再搜索框中不行,闭合不了,但再开发者工具里编辑html元素可以
4
这里和3一样,不过将’改为"就行
5 a href
我咋感觉f12中,找到需要更改的位置编辑为html元素就行
正常先试试3的payload发现不行,所有带on的语句在on中间会加入_,那这里用a href标签
" > <"
6 大小写
这一关href也不行了
过滤了好多,看看大小写能不能绕过
发现大小写没有被过滤掉,这题能利用大小写进行绕过,所以我们可以用下面的方法,构造payload
用上面的改成部分大写
“> <”
7 的、双写
先上关键字试试看
由源码
这里面进行了小写转化,将检测出来的on,script,href给删掉了,但是没有关系,我们可以利用双拼写来绕过。
我是l" oonnclick=‘alert(123)’
8 编码
输入的值在两个,input标签,href属性
看看过滤了啥关键字
input标签添加了html实体转化函数还把双引号也给实体化了, 添加了小写转化函数,还有过滤掉了src、data、onfocus、href、script、"
利用href的隐藏属性自动Unicode解码,将之前的payload编码
javascript:alert(123)
9
这一关有检查,需要向传入的值里面添加http://并用注释符注释掉否则会执行不了无法弹窗
javascript:alert()/* http:// */
10 隐藏传参
没搜索框
看到源代码,有隐藏传参,并过滤掉了<>号,不能闭合插入标签,但是我们还能用on
click事件,因为这里输入框被隐藏了,需要添加type=“text”
?t_sort="οnclick=‘alert(11)’ type="text
11 referer抓包
试试和上一关一样的
发现被转义
?t_sort="οnclick=‘alert(11)’ type="text
其他的传参也试试了发现不行
难搞查了一下,t_ref的标签是http头referer的参数(就是由啥地址转跳到这里的,http头的referer会记录有)
那进行抓包传参
把大于小于号><给删掉了
抓包之后构造请求
Referer:js" οnclick=‘alert(111)’ type="text
12 User-Agent
和11一样看到网页源代码可以看到,t_ua
在User-Agent中清除加入:js" οnclick=‘alert(111)’ type="text
13 cookie
t_cook,想到cookie
f12
cookie名为user,我们直接在这里改一下就好
相关文章:
xss笔记与打靶(更新中)
这个文章好 https://blog.csdn.net/huangyongkang666/article/details/123624164?fromshareblogdetail&sharetypeblogdetail&sharerId123624164&sharereferPC&sharesource2401_88818565&sharefromfrom_link 什么是xss XSS(跨站脚本攻击&…...
游戏引擎学习第133天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾并设定今天的主题 今天的任务是进一步优化背景资源的流式加载,尤其是在内存管理方面。昨天,我们实现了资源流式加载,让游戏在加载时可以动态地加载背景,而不是一开始就把所有资…...
【鸿蒙操作系统】- 1:实习阶段的一些总结
本文目录 1. 序2.鸿蒙与欧拉的概念微内核LiteOS鸿蒙微内核POSIX标准 3.实习干了些什么身份鉴别访问控制恶意代码防范安全审计入侵防范性能压测检查系统版本网络测试常见的linux测试命令 1. 序 之前在某国企实习的时候,有幸参与了鸿蒙系统、鸿蒙欧拉的项目ÿ…...
Qt基础入门-详解
前言 qt之路正式开启 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞ὄ…...
【前端】HTML 备忘清单(超级详细!)
文章目录 入门hello.html注释 Comment段落 ParagraphHTML 链接Image 标签文本格式标签标题Section Divisions内部框架HTML 中的 JavaScriptHTML 中的 CSS HTML5 标签页面标题导航HTML5 TagsHTML5 VideoHTML5 AudioHTML5 RubyHTML5 kdiHTML5 progressHTML5 mark HTML 表格Table …...
版图自动化连接算法开发 00004 ------ 给定一个点,添加一个中间点实现 Manhattan 方式连接两个给定的坐标点
版图自动化连接算法开发 00004 ------ 给定一个点,添加一个中间点实现 Manhattan 方式连接两个给定的坐标点 引言正文引言 必读文章 ------ 版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点。 此处,我们对给定点的坐标进行一下限制,因为是只添加一个点,因…...
C# Enumerable类 之 数据筛选
总目录 前言 在 C# 中,System.Linq.Enumerable 类是 LINQ(Language Integrated Query)的核心组成部分,它提供了一系列静态方法,用于操作实现了 IEnumerable 接口的集合。通过这些方法,我们可以轻松地对集合…...
Grafana服务安装并启动
Grafana服务安装并启动 1、介绍2、下载Grafana3、解压缩文件4、启动Grafana服务5、增加数据源,填写Prometheus访问地址6、增加图表 1、介绍 Grafana是一个开源的可视化系统监控和警报工具包。 2、下载Grafana 介绍:Grafana是一个开源的可视化系统监控和警报工具包…...
蓝桥杯web第三天
展开扇子题目, #box:hover #item1 { transform:rotate(-60deg); } 当悬浮在父盒子,子元素旋转 webkit display: -webkit-box:将元素设置为弹性伸缩盒子模型。-webkit-box-orient: vertical:设置伸缩盒子的子元素排列方…...
C#开发——时间间隔类TimSpan
TimeSpan 是 C# 中的一个结构( struct ),用于表示时间间隔或持续时间。它位于 System 命名空间中,是处理时间相关操作时非常重要的工具,尤其是在计算两个日期或时间之间的差值、表示时间段或执行时间相关的运算…...
NModbus 连接到Modbus服务器(Modbus TCP)
1、在项目中通过NuGet添加NModbus,在界面中添加一个Button。 using NModbus.Device; using NModbus; using System.Net.Sockets; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Docu…...
蓝桥杯 之 图形规律
文章目录 分析组成,找到规律数正方形 在蓝桥杯中,常常会有一些图形的规律的题目需要我们去解决,所以我们需要学会其中的一些方法,我们这样才能解决对应的问题 方法1:直接对n进行拆分方法2:使用递归的思路&a…...
多线程学习之路
多线程的创建方式主要有以下几种: 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法来创建线程。 class MyThread extends Thread {Overridepublic void run() {// 线程执行的任务System.out.println("Thread is running");} }public class Mai…...
英码科技携昇腾DeepSeek大模型一体机亮相第三届北京人工智能产业创新发展大会
2025年2月28日,第三届北京人工智能产业创新发展大会在国家会议中心隆重开幕。本届大会以"好用、易用、愿用——以突破性创新加速AI赋能千行百业”为主题,重点展示人工智能技术创新成果与产业化应用实践。作为昇腾生态的APN伙伴,英码科技…...
【AI】如何理解与应对AI中的敏感话题:详细分析与实用指南
引言 随着人工智能(AI)技术的不断发展,我们在与AI交互时,可能会遇到敏感话题的讨论限制。在许多情况下,AI系统为了避免触及社会、政治或文化敏感点,会对用户输入进行一定的筛选和过滤。那么,这…...
(十 三)趣学设计模式 之 模版方法模式!
目录 一、 啥是模板方法模式?二、 为什么要用模板方法模式?三、 模板方法模式的实现方式四、 模板方法模式的优缺点五、 模板方法模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式&a…...
20250225-代码笔记03-class CVRPModel AND other class
文章目录 前言一、class CVRPModel(nn.Module):__init__(self, **model_params)函数功能函数代码 二、class CVRPModel(nn.Module):pre_forward(self, reset_state)函数功能函数代码 三、class CVRPModel(nn.Module):forward(self, state)函数功能函数代码 四、def _get_encodi…...
【postman】postman找回接口数据
项目提测,一打开postman天塌了,所有接口都不见了。。。。conllection目录也看不见了,也导入不了同事给我发的json文件。 然后重新找同事要了一个安装包,覆盖安装了之后,在下面的目录里面找到了备份文件【C:\Users\yan…...
Milvus向量数据库部署
一、什么是Milvus Milvus 是一款开源的向量数据库,旨在帮助开发者轻松管理和检索大规模向量数据。它通过高效的索引技术,支持快速的相似度搜索,使得从海量数据中查找最接近的匹配变得简单而快捷。无论是构建推荐系统、进行图像识别还是分析自…...
显式 GC 的使用:留与去,如何选择?
目录 一、什么是显式 GC? (一) 垃圾回收的基本原理 (二)显式 GC 方法和行为 1. System.gc() 方法 2. 显式 GC 的行为 (三)显式 GC 的使用场景与风险 1. JVM 如何处理显式 GC 2. 显式 GC…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
