首页 > 其他分享 >pikachu平台xss漏洞详解

pikachu平台xss漏洞详解

时间:2024-11-30 09:02:52浏览次数:12  
标签:xss XSS pikachu DOM alert 详解 输出 输入

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

文章目录

工具在网盘,自取

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

在这里插入图片描述


概述:什么是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=" " one rror='alert(1)'/> 通过闭合单引号,然后利用img标签,当src链接内容出错时,会自动执行onerror错误指令

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

五、xss之盲打

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

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

六、xss之过滤

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

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

七、xss之htmlspecialchars

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

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

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

八、xss之href输出

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

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

在这里插入图片描述

九、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. 实施访问控制:确保只有授权用户可以访问敏感数据或执行特定操作。

标签:xss,XSS,pikachu,DOM,alert,详解,输出,输入
From: https://blog.csdn.net/m0_74786138/article/details/144063856

相关文章

  • 主成分分析(PCA)详解
    ✅作者简介:2022年博客新星第八。热爱国学的Java后端开发者,修心和技术同步精进。......
  • JavaScript 数组方法详解与实践
    #JavaScript  #前端 在JavaScript中,数组是一个非常强大的数据结构,提供了多种内置方法来处理和操作数据。本文将详细介绍几种常用的数组方法:push(), unshift(), splice(), filter(), find(), forEach(), reverse(), map()。我们将逐一探讨它们的使用方法、测试用例......
  • Linux文件系统详解(四)
    ......
  • Linux文件系统详解(三)
    ......
  • Android系统资源管理与电池优化策略详解
    Android系统作为全球最流行的移动操作系统之一,其性能优化一直是开发者和用户关注的焦点。在有限的硬件资源下,如何高效地管理资源并延长电池续航,是提升用户体验的关键。本文将聚焦于Android系统的资源管理策略,特别是内存管理、进程管理,以及电池优化方面,进行深入探讨。资源管理策略......
  • 判断正则二叉树———概念 + 实现模板 + 例题详解(简单易懂)
    判断正则二叉树递归判断概念正则二叉树(RegularBinaryTree):但每个节点要么有两个子节点,要么是叶子节点。实现思路1.设置递归终止条件(1)空节点(node==nullptr)————>returntrue;(2)只有一个子树(!root->left&&root->rig......
  • iOS手机如何实现电脑控制手机?苹果手机群控系统详解
    随着移动设备在企业和个人生活中的广泛应用,对多台iOS设备进行集中管理和控制的需求日益增长。苹果手机群控系统通过合法合规的方式,允许用户通过电脑端软件远程控制和管理多台iPhone或iPad。本章将详细介绍如何使用苹果手机群控系统来实现电脑控制手机,并提供实际操作指南。苹果手......
  • 单点登录深入详解之技术方案总结
    技术方案之CAS认证概述CAS是耶鲁大学的开源项目,宗旨是为web应用系统提供一种可靠的单点登录解决方案。CAS从安全性角度来考虑设计,用户在CAS输入用户名和密码之后通过ticket进行认证,能够有效防止密码泄露。CAS广泛使用于传统应用场景中,比如企业内部的OA,ERP等应......
  • Linux常用命令之setfacl命令详解
    setfacl命令详解setfacl命令是Linux操作系统中用于设置文件或目录的访问控制列表(AccessControlLists,简称ACL)的工具。ACL提供了比传统Unix权限更细粒度的访问控制,可以为特定用户或用户组设置不同的权限。下面是关于setfacl命令的详细说明,包括基本语法、常用选项......
  • Linux常用命令之pvs命令详解
    pvs命令详解pvs命令是LVM(LogicalVolumeManager,逻辑卷管理器)工具集中的一个命令行工具,用于显示系统中所有物理卷(PhysicalVolumes,PV)的信息。LVM是一种磁盘管理技术,它允许用户将多个硬盘或分区组合成一个大的存储池,称为卷组(VolumeGroup,VG),然后从这个卷组中......