pikachu靶场-Cross-Site Scripting(XSS)
sqli-labs靶场安装以及刷题记录-dockerpikachu靶场-Cross-Site Scripting
- pikachu靶场的安装
- 刷题记录
- 反射型xss(get)
- 反射型xss(post)
- 存储型xss
- DOM型xss
- DOM型xss-x
- xss盲打
- xss之过滤
- xss之htmlspecialchars
- xss之href输出
- xss之js输出
pikachu靶场的安装
刷题记录
反射型xss(get)

输入设置了长度限制,前端可以直接改


改maxlength值,之后输入脚本成功注入
<script>alert(1)</script>
反射型xss(post)

执行登陆操作,登陆成功后有一个输入框,可以输入注入语句
存储型xss

同样直接输入注入语句试试
<script>alert(1)</script>
直接弹窗了,看下源码,没有任何过滤
DOM型xss

输入aaaaaa,点击click me会生成一个链接,那可以让它指到刚刚的存储型xss网站来触发弹窗


输入xss_stored.php,点击what do you see

DOM型xss-x

输入123444,观察源码
输入123444后,依次点击所弹出的链接,url变化为
//请说出你的伤心往事
/vul/xss/xss_dom_x.php?text=123444
//有些费尽心机想要忘记的事情,后来真的就忘掉了
/vul/xss/xss_dom_x.php?text=123444#
//就让往事都随风,都随风吧
/vul/xss/123444
同样可以输入xss_stored.php使其跳转到存储型xss网站来触发弹窗
xss盲打

输入各种语句都是一样的回显,看了提示有后台/xssblind/admin_login.php


打开后台页面,会弹窗刚刚提交的注入语句
刚好配置一下文件扫描工具dirsearch,下载zip解压直接
python dirsearch.py -u http://ip:9002/vul/xss/xssblind/
conda create --name py39 python=3.9//需要3.9及以上版本python
xss之过滤

输入注入语句试试
<script>alert(1)</script>
发现回显只剩一个>了,被继续测试,猜一下过滤规则,发现大小写混合可以绕过
<Script>alert(1)</Script>
xss之htmlspecialchars
输入注入语句,之后点击链接弹窗成功
javascript:alert(1)
相关知识点学习:
htmlspecialchars() 是一个用于避免 XSS(跨站脚本攻击) 的 PHP 函数,它的主要作用是将 HTML 特殊字符转义为实体编码,从而防止恶意用户在输入内容中注入 HTML 或 JavaScript 代码。这是常见的 Web 应用程序中用户输入处理的重要部分,尤其是在显示数据时。
基本用法
htmlspecialchars(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE, string $encoding = 'UTF-8', bool $double_encode = true): string
参数说明
-
$string:
- 这是需要被转义的字符串。通常是用户输入的数据。
-
$flags:
- 这是可选参数,用来指定如何处理不同的字符。常见的标志有:
ENT_COMPAT:默认。将双引号 (") 转义为",但不转义单引号 (')。ENT_QUOTES:将双引号和单引号都转义。也就是说,"会转义为",而'会转义为'。ENT_NOQUOTES:不转义任何引号。ENT_HTML401,ENT_XML1,ENT_XHTML,ENT_HTML5:这些用于指定 HTML 实体的文档类型(HTML 4.01、XML 1、XHTML、HTML5)。ENT_SUBSTITUTE:当给定的字符集无法表示某些字符时,使用替代字符。
- 这是可选参数,用来指定如何处理不同的字符。常见的标志有:
-
$encoding:
- 这是字符编码的选项。默认值是
UTF-8,但可以根据需要设置为其他编码(如ISO-8859-1)。
- 这是字符编码的选项。默认值是
-
$double_encode:
- 如果设置为
false,则不会对已经被转义的实体再次进行转义。例如,如果字符串中已经包含&,它不会再次转义为&amp;。默认为true。
- 如果设置为
常见例子
-
基本用法:
$input = "<script>alert('XSS');</script>"; echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');输出:
<script>alert('XSS');</script>htmlspecialchars()将<转义为<,>转义为>,从而避免了用户输入的 JavaScript 被浏览器解释和执行。
-
处理双引号和单引号:
$input = 'He said, "Hello!"'; echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');输出:
He said, "Hello!"ENT_QUOTES标志确保了双引号被转义为"。
-
避免重复转义:
$input = '<strong>Hello</strong>'; echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8', false);输出:
<strong>Hello</strong>- 因为
double_encode参数被设置为false,所以已经转义的实体不会再次被转义。
- 因为
使用场景
-
显示用户输入的数据:
当用户提交包含 HTML 或 JavaScript 的数据时,直接输出可能会被浏览器解释并执行。这会导致跨站脚本攻击(XSS)。htmlspecialchars()可以有效防止这种情况。$comment = "<script>alert('hacked');</script>"; echo htmlspecialchars($comment, ENT_QUOTES, 'UTF-8');这样可以确保用户输入的
<script>标签不会被执行,而是显示为普通文本。 -
防止 XSS 攻击:
用户通过表单提交恶意代码是 XSS 攻击的常见方式。通过使用htmlspecialchars(),可以将这些恶意代码转义为普通文本,防止被执行。 -
与数据库结合使用:
当你将用户输入的数据存入数据库并从数据库读取数据进行展示时,使用htmlspecialchars()来展示用户生成的内容是一个好习惯。它能确保显示的数据是安全的,而不是被解析为 HTML 或 JavaScript。
转义的字符列表
&转义为&<转义为<>转义为>"转义为"'转义为'(仅在ENT_QUOTES标志下)
注意事项
htmlspecialchars()主要用于输出 HTML 内容时对用户输入的转义。如果你需要将用户输入作为 HTML 标记(比如<div>)安全地显示,htmlspecialchars()是首选。- 对于更复杂的场景,比如需要处理完整的 HTML 文档或需要转义所有 HTML 实体,可以使用
htmlentities()函数。
总结
htmlspecialchars()是防止 XSS 攻击的一个重要函数,通过将特殊字符转义,避免浏览器将其解释为 HTML 或 JavaScript 代码。- 它在输出用户输入的数据时尤其重要,比如在评论区、聊天框等地方。
xss之href输出

javascript:alert(1)//同样可以绕过
xss之js输出

输入
javascript:alert(1)
?message=javascript%3Aalert%281%29&submit=submit//Url中多了message参数
提示

随便输入看一下源码

尝试闭合
1'</script><script>alert(1)</script>

没有闭合,再试一次
1'</script><script>alert(1)</script>
成功弹窗
相关文章:
pikachu靶场-Cross-Site Scripting(XSS)
sqli-labs靶场安装以及刷题记录-dockerpikachu靶场-Cross-Site Scripting pikachu靶场的安装刷题记录反射型xss(get)反射型xss(post)存储型xssDOM型xssDOM型xss-xxss盲打xss之过滤xss之htmlspecialcharsxss之href输出xss之js输出 pikachu靶场的安装 刷题记录 反射型xss(get) …...
在数据库访问中,使用localhost、127.0.0.1和IP地址有什么差异
在数据库访问中,使用127.0.0.1和IP地址(在本地环境中通常指的是局域网IP或环回地址)的速度差异,实际上是非常微小的,甚至在很多情况下可以忽略不计。不过,为了更深入地理解这个问题,我们可以从以…...
C语言 | Leetcode C语言题解之第513题找树左下角的值
题目: 题解: #define MAX_NODE_SIZE 10000int findBottomLeftValue(struct TreeNode* root){int ret;struct TreeNode** queue (struct TreeNode **)malloc(sizeof(struct TreeNode) * MAX_NODE_SIZE);int head 0;int tail 0;queue[tail] root;whil…...
人工智能:改变未来生活与工作的无尽可能
随着科技的飞速发展,人工智能(AI)正成为推动全球变革的重要力量。无论是在医疗、企业,还是日常生活中,AI技术通过赋能各行业,正在深刻地改变我们的生活和工作方式。这些变化为我们提供了便捷与效率的同时&a…...
讲一讲 kafka 的 ack 的三种机制?
大家好,我是锋哥。今天分享关于【K讲一讲 kafka 的 ack 的三种机制?】面试题?希望对大家有帮助; 讲一讲 kafka 的 ack 的三种机制? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka的消息确认机制&…...
若依框架部署到服务器后头像资源访问404
排错过程 第一开始以为是代理出问题了 官网给出的解决方案 第一种是用代理后端接口,第二种是重写路径直接访问静态文件 接口通过捕获profile开头的路径/profile/avatar…,转为/home…/avatar找到我们在该路径下的文件 但是我想了一下,我ngin…...
纯GO语言开发RTSP流媒体服务器-RTSP推流直播、本地保存录像、录像回放、http-flv及hls协议分发
温馨提示:我们分享的文章是给需要的人,不需要的人请绕过,文明浏览,误恶语伤人! 前言 在软件开发中遇到使用流媒体音视频的行业比较多,如安防监控系统、无人机巡逻视频上云处理、直播平台、教育与企业培训…...
el-table相关的功能实现
1. 表格嵌套表格时,隐藏父表格的全选框 场景:当table表格设置复选(多选)功能时,如何隐藏表头的复选框,不让用户一键多选。 <el-table :header-cell-class-name"cellClass">// 表头复选框禁…...
衡石分析平台系统分析人员手册-展示类控件创建富文本攻略
富文本 富文本控件是一种常见的控件,可用来展示文本信息、用户属性信息,在数据分析中起到辅助分析的功能。 富文本常见的使用场景有: 仅展示纯文本信息。在富文本中展示数据集字段、指标、参数等信息。使用富文本展示用户属性相关信息。在…...
为什么在网络中不能直接传输数据
为什么在网络中不能直接传输数据 原因 在网络中不能直接传输原始数据形式,主要有以下几方面原因: 数据表示的多样性:不同的计算机系统、编程语言和应用程序对数据的表示方式可能各不相同。例如,整数在不同的编程语言中可能有不同…...
javascript实现aes算法(支持微信小程序)
概述: 本代码是本人从c代码上转换成的javascript代码,并测试验证通过的。代码比较长1000多行,考虑放其他地方要么要会员要么容易关闭,不容易被需要的获取到,故直接贴在本文档下面的章节,功能代码。 测试平…...
Centos系统新增网卡后获取不到网卡的IP地址解决方法
一、问题描述 当我们给Centos系统添加了新的网卡后,使用查看IP地址命令【ip addr】时,发现新网卡没有获取到对应的IP地址信息,如下图所示: 二、解决方法 有两种解决方法:一种是自动获取IP地址;另外一种是手动配置IP地址; 2.1、自动获取IP地址 #自动获取网卡的IP地址命…...
U-net医学分割网络——学习笔记
《U-Net: Convolutional Networks for Biomedical Image Segmentation》 一、提出背景 U-Net 的提出是为了解决生物医学图像分割的几个关键问题:需要像素级的精确分割、标注数据稀缺、滑动窗口方法效率低以及多尺度特征融合的需求。U-Net 通过对称的 U 型全卷积结…...
CIM+全场景应用,铸就智慧城市发展新篇
在数字化浪潮的推动下,智慧城市建设正成为全球城市发展的新趋势。而CIM(城市信息模型)作为智慧城市建设的核心,正以其强大的数据集成和分析能力,引领着城市发展的新篇章。今天,让我们一起探讨CIM全场景应用…...
ts:对象数组的简单使用
ts中对象数组的简单使用 一、主要内容说明二、例子1、源码12、源码1运行效果 三、结语四、定位日期 一、主要内容说明 平常ts创建数组的格式如下: let array:string[]["元素1","元素2","元素3","元素3","元素4"…...
当我们在微服务中使用API网关时,它是否会成为系统的瓶颈?这种潜在的瓶颈如何评估和解决?如何在微服务架构中保证高效请求流量?|API网关|微服务|异步处理
目录 1. API网关在微服务中的角色与重要性 2. API网关瓶颈的评估 2.1 请求延迟分析 2.2 并发请求量监控 2.3 内存和CPU使用情况 2.4 限流和熔断机制评估 2.5 日志分析 3. API网关瓶颈的解决方案 3.1 缓存机制优化 3.2 负载均衡优化 3.3 异步处理与消息队列 3.4 限流…...
微服务设计模式 - 特性标志(Feature Flags)
微服务设计模式 - 特性标志(Feature Flags) 定义 特性标志(Feature Flags),又称特性开关(Feature Toggles),是一种常见的云计算设计模式,允许开发人员通过配置动态地打开…...
故障诊断 | MTF-TLSSA-DarkNet-GRU-MSA迁移学习故障识别程序(t分布+莱维飞行改进麻雀优化)
故障诊断 | 故障诊断实例代码 目录 故障诊断 | 故障诊断实例代码效果一览基本介绍程序设计参考资料 效果一览 基本介绍 利用了迁移学习和多项技术改进,包括麻雀搜索法、DarkNet19、GRU、多头注意力机制等,以提高故障识别的准确性和效率 模型框架&#x…...
【mysql 进阶】2-1. MySQL 服务器介绍
MySQL 服务器简介 通常所说的 MySQL 服务器指的是mysqld程序,当运⾏mysqld后对外提供MySQL 服务,这个专题的内容涵盖了以下关于MySQL 服务器以及相关配置的内容,包括: 服务器⽀持的启动选项。可以在命令⾏和配置⽂件中指定这些选…...
基于Qt的多线程并行和循序运行实验Demo
致谢(Acknowledgement): 感谢Youtube博主Qt With Ketan与KDAB精心录制的Qt多线程处理应用教程,感谢Bilibili博主爱编程的大丙对Qt多线程与线程池内容深入浅出的讲解。 一、计算机线程相关概念 线程概念[1]: 在计算机科…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
