pikachu平台xss漏洞详解

embedded/2024/11/27 12:37:38/

声明:文章只是起演示作用,所有涉及的网站和内容,仅供大家学习交流,如有任何违法行为,均和本人无关,切勿触碰法律底线

文章目录

  • 概述:什么是xss
  • 一、反射型XSS
    • 1. get
    • 2. post
  • 二、存储型XSS
  • 三、DOM型XSS
  • 四、DOM型XSS-X
  • 五、xss之盲打
  • 六、xss之过滤
  • 七、xss之htmlspecialchars
  • 八、xss之href输出
  • 九、xss之js输出
  • 总结

工具在网盘,自取

通过网盘分享的文件:phpstudy
链接: https://pan.baidu.com/s/1l0jpNGQvYMwRSq3BhDY1EQ 提取码: jay1
–来自百度网盘超级会员v1的分享

在这里插入图片描述


xss_18">概述:什么是xss

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:1.反射性XSS;2.存储型XSS;3.DOM型XSS;XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

一、反射型XSS

服务器中响应,不会存入数据库

1. get

打开平台,随意输入一个 <h1>xss</h1> 看到如下返回结果,证明是存在xss漏洞的
在这里插入图片描述
在url里可以看到是通过GET方式请求的,所以打开HackBar传参**

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f361705fc26b479d90b06f074024d2d0.png)

在这里插入图片描述

**输入<script>alert("xss")</script> ,出现弹窗

在这里插入图片描述
由于输入框被限制长度,所以可以找到此处更改长度,随后输入即可

在这里插入图片描述

2. post

首先是一个登录框,先进行登录
在输入框内输入<script>alert("xss")</script>,会在页面出现弹窗,我们可以随意输入然后在burpsuite抓包试试
,将内容改成<script>alert("xss")</script>

在这里插入图片描述
点击放行后出现弹窗

二、存储型XSS

输入的内容会永久留着页面,每当有用户访问,便可执行
在留言板输入 <script>alert("xss")</script>并提交
在这里插入图片描述
会出现弹窗,并且每当我们刷新页面这个弹窗就会出现

在这里插入图片描述

三、DOM型XSS

DOM:全称Document Object Model,使用DOM可以使程序和脚本能够动态访问和更新文档的内容、结构及样式。DOM型XSS是非持久型XSS,且不与后台服务器产生数据交互,而是通过JS修改网页的DOM来执行恶意脚本进行攻击。注意,DOM型XSS与反射型和存储型最大的区别在于,DOM型XSS不经过服务端,全部的攻击过程都在客户端完成

输入<script>alert("xss")</script>,查看源代码,看下面这段代码
"<a href='"+str+"'>what do you see?</a>"; str是我们传入的字符串,可以利用单引号实现闭合<a href = ’ " 'onclick="alert('xss')">

在这里插入图片描述输出结果:
在这里插入图片描述

四、DOM型XSS-X

DOM-X型危害比DOM型更大,它能够像反射型一样在URL中体现,将URL发给了受害者就能进行攻击

随意输入,查看源码:
在这里插入图片描述关键代码:<a href='"+xss+"'>就让往事都随风,都随风吧</a> ,和上一个没什么区别,使用上一个也可以通过,这里我们使用另一种方式
'><img src=" " onerror='alert(1)'/> 通过闭合单引号,然后利用img标签,当src链接内容出错时,会自动执行onerror错误指令

查看结果:
在这里插入图片描述

xss_95">五、xss之盲打

输入 123456
在这里插入图片描述
提交后进入后台,地址:http://127.0.0.1/pikachu-master/vul/xss/xssblind/admin_login.php
进入后用户名:admin密码:123456
在这里插入图片描述

在****这个时候我们可以看到输入的内容在后台被存储了,所以假设我们输入的是有害的xss,那么当管理员访问后台时,命令便会自动执行,造成危害

xss_107">六、xss之过滤

输入123,可以正常输出
在这里插入图片描述
输入:<script>alert("xss")</script>会发现内容被过滤可以看到'>'前面的内容没有正常输出,可能把<script过滤了
在这里插入图片描述绕过方式有很多种,这里列举几种常见的
大写绕过<SCRIPT>alert("xss")</SCRIPT>
转换标签:<img src=a onerror=alert("xss")>
当alert被一起禁用<img src="a" onerror="comfirm('xss')">

都可以绕过:
在这里插入图片描述

xsshtmlspecialchars_122">七、xss之htmlspecialchars

首先了解一下htmlspecialchars,这是php代码中的一个内容,会把一些符号转换成html编码的形式,如下图,'<''>',两个符号都被转换了,但是单引号可以正常输出

在这里插入图片描述
所以可以先输入<script>alert("xss")</script>,发现无法正常执行
查看源代码发现被过滤

在这里插入图片描述
使用单引号过滤:'onclick='alert(1)'
点击会出现弹窗:
在这里插入图片描述

xsshref_136">八、xss之href输出

href在html编码里属于超链接有一个特殊特性:利用 JavaScript 来动态改变 href 属性的值
输入:<script>alert("xss")</script>,查看源代码,发现输入的内容被href变成了超链接,并且部分符号被转换

在这里插入图片描述
利用JavaScript特性,输入:javascript:alert('xss')

在这里插入图片描述

xssjs_148">九、xss之js输出

输入查看源码,看到代码被单引号闭合过滤,遇到这种情况,有两种过滤方式,
单引号闭合:';alert(9)//
双引号闭合:";alert(9)//

在这里插入图片描述

输入 ';alert(9)//

在这里插入图片描述


总结

危害:

  1. 窃取敏感信息:攻击者可以通过XSS漏洞窃取用户的个人数据,如登录凭证、信用卡信息等。
  2. 会话劫持:攻击者可以盗取用户的会话令牌,进而冒充用户身份进行操作。
  3. 网页篡改:攻击者可以篡改网页内容,插入恶意代码或信息,损害网站声誉。
  4. 传播恶意软件:通过XSS漏洞,攻击者可以诱导用户下载恶意软件或点击恶意链接。
  5. 数据损坏:攻击者可能破坏或修改网站数据,导致服务中断或数据丢失。
  6. 声誉损害:XSS攻击可能导致用户对网站失去信任,损害网站和企业的声誉。

防护措施:

  1. 输入验证:对所有用户输入进行验证,确保输入数据符合预期格式。
  2. 输出编码:对输出内容进行编码,防止将用户输入作为HTML或JavaScript执行。
  3. 内容安全策略(CSP):实施CSP,限制页面可以加载和执行的资源,减少XSS攻击的风险。
  4. 使用安全的框架和库:采用支持XSS防护的框架和库,如OWASP的AntiSamy、JavaScript的DOMPurify等。
  5. 限制Cookie权限:使用httpOnly和secure标志保护Cookie,减少会话劫持的风险。
  6. HTTPS加密:使用HTTPS加密通信,防止中间人攻击。
  7. 教育和培训:提高开发者和用户对XSS攻击的认识和防范意识。
  8. 定期更新和打补丁:及时更新Web应用和服务器软件,修补已知的安全漏洞。
  9. 监控和日志记录:监控Web应用活动,记录异常行为,及时发现和响应XSS攻击。
  10. 实施访问控制:确保只有授权用户可以访问敏感数据或执行特定操作。

http://www.ppmy.cn/embedded/140897.html

相关文章

Sui 链游戏开发实战:用 Move 写一个链上剪刀石头布游戏!

系列文章目录 Task1&#xff1a;hello move&#x1f6aa; Task2&#xff1a;move coin&#x1f6aa; Task3&#xff1a;move nft&#x1f6aa; Task4&#xff1a;move game&#x1f6aa; 更多精彩内容&#xff0c;敬请期待&#xff01;✌️ 文章目录 系列文章目录前言什么是 …

Scala:根据身份证号码,输出这个人的籍贯

例如&#xff1a;42表示湖北&#xff0c;33表示浙江&#xff0c;11表示北京&#xff0c;31表示上海 object y8 {def main(args: Array[String]): Unit {val id"429005200101020054"val proviceid.substring(0,2) // println(provice) // if (provice"42…

《网络是怎样连接的》整体的总结

1、前言 本篇是对读完《网络是怎样连接的》这本书的一篇整的总结&#xff0c;具体的每一章节的学习记录之前已经有发布过&#xff01;然后呢&#xff0c;还会结合本书的内容也大概总结一下外网进内网的一般步骤&#xff0c;其中会经过哪些环节&#xff0c;在下一章发布。有错误…

网络层协议IP

对于网络层我们直接通过IP协议来了解其内容 一.IP协议 首先我们先来了解几个概念&#xff1a; 主机&#xff1a;配有IP地址&#xff0c;但是不进行路由控制的设备 路由器&#xff1a;配有IP地址&#xff0c;同时进行路由控制的设备 节点&#xff1a;主机和路由器的统称 所以现在…

【设计模式】【行为型模式(Behavioral Patterns)】之状态模式(State Pattern)

1. 设计模式原理说明 状态模式&#xff08;State Pattern&#xff09; 是一种行为设计模式&#xff0c;它允许对象在其内部状态发生变化时改变其行为。这个模式的核心思想是使用不同的类来表示不同的状态&#xff0c;每个状态类都封装了与该状态相关的特定行为。当对象的状态发…

FFmpegFrameRecorder 切分视频文件时结束条件设置不当导致切分后的文件过短问题

问题 下游反馈使用 ffmpeg 切割后的音频文件&#xff0c;无法正确识别其声音的性别 排查流程 1&#xff0c;由于线上大部分用户上传音频后&#xff0c;进行切分后的音频都没问题&#xff0c;因此考虑到这些无法识别性别的音频&#xff0c;有格式问题&#xff0c;需要找出其共…

非线性控制器设计原理

非线性控制器设计原理 非线性控制器设计旨在解决非线性系统的控制问题&#xff0c;克服传统线性控制器在处理非线性现象&#xff08;如饱和、死区、耦合、时变性等&#xff09;时的不足。其核心在于利用非线性数学工具和设计方法&#xff0c;使控制系统在非线性条件下具备良好…

GaussDB高智能--库内AI引擎:模型管理数据集管理

书接上文库内AI引擎&#xff1a;机器学习算法的训练和推理&#xff0c;从机器学习算法的训练和推理方面对GaussDB的库内AI引擎进行了详细解读&#xff0c;本篇将从模型管理与数据集管理两方面&#xff0c;继续介绍GaussDB库内AI引擎。 3.2 模型管理 在机器学习算法进行训练后…