当前位置: 首页 > news >正文

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

参数说明

  1. $string:

    • 这是需要被转义的字符串。通常是用户输入的数据。
  2. $flags:

    • 这是可选参数,用来指定如何处理不同的字符。常见的标志有:
      • ENT_COMPAT:默认。将双引号 (") 转义为 &quot;,但不转义单引号 (')。
      • ENT_QUOTES:将双引号和单引号都转义。也就是说," 会转义为 &quot;,而 ' 会转义为 &#039;
      • ENT_NOQUOTES:不转义任何引号。
      • ENT_HTML401, ENT_XML1, ENT_XHTML, ENT_HTML5:这些用于指定 HTML 实体的文档类型(HTML 4.01、XML 1、XHTML、HTML5)。
      • ENT_SUBSTITUTE:当给定的字符集无法表示某些字符时,使用替代字符。
  3. $encoding:

    • 这是字符编码的选项。默认值是 UTF-8,但可以根据需要设置为其他编码(如 ISO-8859-1)。
  4. $double_encode:

    • 如果设置为 false,则不会对已经被转义的实体再次进行转义。例如,如果字符串中已经包含 &amp;,它不会再次转义为 &amp;amp;。默认为 true

常见例子

  1. 基本用法

    $input = "<script>alert('XSS');</script>";
    echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
    

    输出

    &lt;script&gt;alert(&#039;XSS&#039;);&lt;/script&gt;
    
    • htmlspecialchars()< 转义为 &lt;> 转义为 &gt;,从而避免了用户输入的 JavaScript 被浏览器解释和执行。
  2. 处理双引号和单引号

    $input = 'He said, "Hello!"';
    echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
    

    输出

    He said, &quot;Hello!&quot;
    
    • ENT_QUOTES 标志确保了双引号被转义为 &quot;
  3. 避免重复转义

    $input = '&lt;strong&gt;Hello&lt;/strong&gt;';
    echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8', false);
    

    输出

    &lt;strong&gt;Hello&lt;/strong&gt;
    
    • 因为 double_encode 参数被设置为 false,所以已经转义的实体不会再次被转义。

使用场景

  1. 显示用户输入的数据
    当用户提交包含 HTML 或 JavaScript 的数据时,直接输出可能会被浏览器解释并执行。这会导致跨站脚本攻击(XSS)。htmlspecialchars() 可以有效防止这种情况。

    $comment = "<script>alert('hacked');</script>";
    echo htmlspecialchars($comment, ENT_QUOTES, 'UTF-8');
    

    这样可以确保用户输入的 <script> 标签不会被执行,而是显示为普通文本。

  2. 防止 XSS 攻击
    用户通过表单提交恶意代码是 XSS 攻击的常见方式。通过使用 htmlspecialchars(),可以将这些恶意代码转义为普通文本,防止被执行。

  3. 与数据库结合使用
    当你将用户输入的数据存入数据库并从数据库读取数据进行展示时,使用 htmlspecialchars() 来展示用户生成的内容是一个好习惯。它能确保显示的数据是安全的,而不是被解析为 HTML 或 JavaScript。

转义的字符列表

  • & 转义为 &amp;
  • < 转义为 &lt;
  • > 转义为 &gt;
  • " 转义为 &quot;
  • ' 转义为 &#039;(仅在 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地址有什么差异

在数据库访问中&#xff0c;使用127.0.0.1和IP地址&#xff08;在本地环境中通常指的是局域网IP或环回地址&#xff09;的速度差异&#xff0c;实际上是非常微小的&#xff0c;甚至在很多情况下可以忽略不计。不过&#xff0c;为了更深入地理解这个问题&#xff0c;我们可以从以…...

C语言 | Leetcode C语言题解之第513题找树左下角的值

题目&#xff1a; 题解&#xff1a; #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…...

人工智能:改变未来生活与工作的无尽可能

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;正成为推动全球变革的重要力量。无论是在医疗、企业&#xff0c;还是日常生活中&#xff0c;AI技术通过赋能各行业&#xff0c;正在深刻地改变我们的生活和工作方式。这些变化为我们提供了便捷与效率的同时&a…...

讲一讲 kafka 的 ack 的三种机制?

大家好&#xff0c;我是锋哥。今天分享关于【K讲一讲 kafka 的 ack 的三种机制&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 讲一讲 kafka 的 ack 的三种机制&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka的消息确认机制&…...

若依框架部署到服务器后头像资源访问404

排错过程 第一开始以为是代理出问题了 官网给出的解决方案 第一种是用代理后端接口&#xff0c;第二种是重写路径直接访问静态文件 接口通过捕获profile开头的路径/profile/avatar…&#xff0c;转为/home…/avatar找到我们在该路径下的文件 但是我想了一下&#xff0c;我ngin…...

纯GO语言开发RTSP流媒体服务器-RTSP推流直播、本地保存录像、录像回放、http-flv及hls协议分发

温馨提示&#xff1a;我们分享的文章是给需要的人&#xff0c;不需要的人请绕过&#xff0c;文明浏览&#xff0c;误恶语伤人&#xff01; 前言 在软件开发中遇到使用流媒体音视频的行业比较多&#xff0c;如安防监控系统、无人机巡逻视频上云处理、直播平台、教育与企业培训…...

el-table相关的功能实现

1. 表格嵌套表格时&#xff0c;隐藏父表格的全选框 场景&#xff1a;当table表格设置复选&#xff08;多选&#xff09;功能时&#xff0c;如何隐藏表头的复选框&#xff0c;不让用户一键多选。 <el-table :header-cell-class-name"cellClass">// 表头复选框禁…...

衡石分析平台系统分析人员手册-展示类控件创建富文本攻略

富文本​ 富文本控件是一种常见的控件&#xff0c;可用来展示文本信息、用户属性信息&#xff0c;在数据分析中起到辅助分析的功能。 富文本常见的使用场景有&#xff1a; 仅展示纯文本信息。在富文本中展示数据集字段、指标、参数等信息。使用富文本展示用户属性相关信息。在…...

为什么在网络中不能直接传输数据

为什么在网络中不能直接传输数据 原因 在网络中不能直接传输原始数据形式&#xff0c;主要有以下几方面原因&#xff1a; 数据表示的多样性&#xff1a;不同的计算机系统、编程语言和应用程序对数据的表示方式可能各不相同。例如&#xff0c;整数在不同的编程语言中可能有不同…...

javascript实现aes算法(支持微信小程序)

概述&#xff1a; 本代码是本人从c代码上转换成的javascript代码&#xff0c;并测试验证通过的。代码比较长1000多行&#xff0c;考虑放其他地方要么要会员要么容易关闭&#xff0c;不容易被需要的获取到&#xff0c;故直接贴在本文档下面的章节&#xff0c;功能代码。 测试平…...

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 的提出是为了解决生物医学图像分割的几个关键问题&#xff1a;需要像素级的精确分割、标注数据稀缺、滑动窗口方法效率低以及多尺度特征融合的需求。U-Net 通过对称的 U 型全卷积结…...

CIM+全场景应用,铸就智慧城市发展新篇

在数字化浪潮的推动下&#xff0c;智慧城市建设正成为全球城市发展的新趋势。而CIM&#xff08;城市信息模型&#xff09;作为智慧城市建设的核心&#xff0c;正以其强大的数据集成和分析能力&#xff0c;引领着城市发展的新篇章。今天&#xff0c;让我们一起探讨CIM全场景应用…...

ts:对象数组的简单使用

ts中对象数组的简单使用 一、主要内容说明二、例子1、源码12、源码1运行效果 三、结语四、定位日期 一、主要内容说明 平常ts创建数组的格式如下&#xff1a; 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)

微服务设计模式 - 特性标志&#xff08;Feature Flags&#xff09; 定义 特性标志&#xff08;Feature Flags&#xff09;&#xff0c;又称特性开关&#xff08;Feature Toggles&#xff09;&#xff0c;是一种常见的云计算设计模式&#xff0c;允许开发人员通过配置动态地打开…...

故障诊断 | MTF-TLSSA-DarkNet-GRU-MSA迁移学习故障识别程序(t分布+莱维飞行改进麻雀优化)

故障诊断 | 故障诊断实例代码 目录 故障诊断 | 故障诊断实例代码效果一览基本介绍程序设计参考资料 效果一览 基本介绍 利用了迁移学习和多项技术改进&#xff0c;包括麻雀搜索法、DarkNet19、GRU、多头注意力机制等&#xff0c;以提高故障识别的准确性和效率 模型框架&#x…...

【mysql 进阶】2-1. MySQL 服务器介绍

MySQL 服务器简介 通常所说的 MySQL 服务器指的是mysqld程序&#xff0c;当运⾏mysqld后对外提供MySQL 服务&#xff0c;这个专题的内容涵盖了以下关于MySQL 服务器以及相关配置的内容&#xff0c;包括&#xff1a; 服务器⽀持的启动选项。可以在命令⾏和配置⽂件中指定这些选…...

基于Qt的多线程并行和循序运行实验Demo

致谢&#xff08;Acknowledgement&#xff09;&#xff1a; 感谢Youtube博主Qt With Ketan与KDAB精心录制的Qt多线程处理应用教程&#xff0c;感谢Bilibili博主爱编程的大丙对Qt多线程与线程池内容深入浅出的讲解。 一、计算机线程相关概念 线程概念[1]&#xff1a; 在计算机科…...

在 Java 并发编程和高性能数据处理中,HashMap 和 ConcurrentHashMap 是两大核心容器。它们在 JDK 8+ 中的演进(链表转红黑树、锁机制优化)直接解决了特定业务场景下的性

在 Java 并发编程和高性能数据处理中&#xff0c;HashMap 和 ConcurrentHashMap 是两大核心容器。它们在 JDK 8 中的演进&#xff08;链表转红黑树、锁机制优化&#xff09;直接解决了特定业务场景下的性能瓶颈。 以下结合具体业务场景&#xff0c;深度解析它们的内部机制及设计…...

OpenClaw多模型切换指南:Qwen3-32B与本地Llama混合调用

OpenClaw多模型切换指南&#xff1a;Qwen3-32B与本地Llama混合调用 1. 为什么需要多模型切换&#xff1f; 去年冬天&#xff0c;当我第一次尝试用OpenClaw自动处理周报时&#xff0c;发现一个有趣的现象&#xff1a;用同一个模型处理文本润色和代码生成任务&#xff0c;效果差…...

如何智能检测微信单向好友?WechatRealFriends全方位解决方案

如何智能检测微信单向好友&#xff1f;WechatRealFriends全方位解决方案 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFrien…...

互联网大厂 Java 面试实战:一次“高并发系统追问”下的真实对话

在大多数 Java 面试中&#xff0c;真正拉开差距的从来不是“你会多少知识点”&#xff0c;而是当系统出现问题时&#xff0c;你是否知道该怎么扛。很多候选人熟悉各种八股文&#xff0c;但一旦进入场景题就会卡住。下面通过一场更贴近真实大厂风格的面试&#xff0c;对话式还原…...

Go Mutex 与 RWMutex 性能对比

在Go语言并发编程中&#xff0c;Mutex&#xff08;互斥锁&#xff09;和RWMutex&#xff08;读写锁&#xff09;是两种常用的同步机制。它们的性能差异直接影响高并发场景下的程序效率。本文将从多个角度对比两者的性能表现&#xff0c;帮助开发者根据实际需求选择合适的锁机制…...

OpenClaw+QwQ-32B科研助手:文献摘要与笔记自动整理

OpenClawQwQ-32B科研助手&#xff1a;文献摘要与笔记自动整理 1. 为什么需要AI科研助手&#xff1f; 作为一名经常需要阅读大量文献的研究者&#xff0c;我发现自己长期陷入"文献管理困境"&#xff1a;下载的PDF堆积如山&#xff0c;重要信息散落在不同标注工具里&…...

深度剖析:synchronized 底层实现原理(JVM 视角)

一、Java对象内存布局的深度拆解原文提到了对象头&#xff0c;这里补充64位JVM的完整对象布局和对齐填充的底层原因。1.1 64位JVM的完整对象结构text┌─────────────────────────────────────────────┐ │ 对象头…...

League-Toolkit:提升英雄联盟竞技效率的智能辅助工具集

League-Toolkit&#xff1a;提升英雄联盟竞技效率的智能辅助工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolki…...

逆向分析WhatsApp的GIF功能:用Frida抓取Tenor API的完整请求与响应数据

逆向工程实战&#xff1a;用Frida解密WhatsApp的GIF数据流 当你在WhatsApp中发送一个GIF表情时&#xff0c;是否好奇过这个动态图片是如何从服务器传输到你的手机上的&#xff1f;今天我们将深入WhatsApp客户端内部&#xff0c;通过动态插桩工具Frida来捕获和分析其背后的Tenor…...

利用快马平台快速构建高清乱码生成器:编码错误可视化原型开发指南

最近在调试一个多语言网站时&#xff0c;遇到了各种编码问题导致的乱码现象。为了更直观地理解不同编码错误的表现形式&#xff0c;我尝试用InsCode(快马)平台快速搭建了一个高清乱码生成器&#xff0c;效果出乎意料地好。下面分享下这个项目的实现思路和具体操作&#xff1a; …...