十四、pikachu之XSS

文章目录

  • 1、XSS概述
  • 2、实战
    • 2.1 反射型XSS(get)
    • 2.2 反射型XSS(POST型)
    • 2.3 存储型XSS
    • 2.4 DOM型XSS
    • 2.5 DOM型XSS-X
    • 2.6 XSS之盲打
    • 2.7 XSS之过滤
    • 2.8 XSS之htmlspecialchars
    • 2.9 XSS之href输出
    • 2.10 XSS之JS输出

1、XSS概述

  Cross-Site Scripting简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:

  • 反射性XSS;
  • 存储型XSS;
  • DOM型XSS;

  XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。

  因此,在XSS漏洞的防范上,一般会采用对输入进行过滤输出进行转义的方式进行处理:

  • 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
  • 输出转义:根据输出点的位置对输出到前端的内容进行适当转义。

2、实战

2.1 反射型XSS(get)

(1)j既然已经提示这题属于反射型XSS,直接上payload:<script>alert("XSS")</script>;

在这里插入图片描述
  发现:payload被截断了。查看前端源码:

在这里插入图片描述
  输入框有长度限制,那么我们直接Burp进行抓包,修改数据包试试:

  payload:http://192.168.92.1:32769/vul/xss/xss_reflected_get.php?message=%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%58%53%53%22%29%3c%2f%73%63%72%69%70%74%3e&submit=submit

在这里插入图片描述

2.2 反射型XSS(POST型)

(1)首先使用用户名和密码进行登录;
在这里插入图片描述
(2)这一题跟前一题差不多,直接在输入框中上payload:<script>alert(document.cookie)</script>

在这里插入图片描述

2.3 存储型XSS

(1)首先在留言板中输入一些特殊的字符串,发现并没有过滤:
在这里插入图片描述
(2)跟前面一样,直接上payload:<script>alert(document.cookie)<script>
在这里插入图片描述

  与反射型XSS不同的是,存储型XSS会使每访问一次页面,页面都会弹框。

2.4 DOM型XSS

  DOM型XSS和反射型XSS、存储型XSS的区别在于:DOM型不用将恶意脚本传输到服务器在返回客户端,而后两种恶意脚本都会经过服务器端然后返回给客户端。

  对于浏览器来说,DOM文档就是一份XML文档,通过JavaScript就可以轻松的访问DOM文档。下面举例一个DOM将HTML代码转化成树状结构:

<html><head><meta charset="gbk" /><title> TEST </title></head><body><p>The is p.<p><h1>Product:</h1><ul><li>Apple</li><li>Pear</li><li>Corn</li></ul></body>
</html>

转化成模型如下图:
在这里插入图片描述

  通过这种简单的树状结构,就能把元素之间的关系简单明晰的表示出来,方便客户端的JavaScript脚本通过DOM动态的检查和修改页面内容,不依赖服务端的数据。

(1)在搜索框中随便输入12,页面回显“what do you see?”。
在这里插入图片描述
(2)查看页面源代码:
在这里插入图片描述
  大意:点击“click me!”按钮,会执行domxss()函数,变量str的值为输入框中的内容,然后将str的值与<a href='‘>what do you see?</a>进行拼接。

  我们只需要闭合a标签,就可以使得payload执行。构造payload:'><img src="#" onmouseover="alert('xss')">

  注意,不能再script标签下再嵌套script标签,故换一个payload,当鼠标移动到图片的的地方,就会弹窗。

在这里插入图片描述

2.5 DOM型XSS-X

查看源码;
在这里插入图片描述
  关于window.location.search就是URL中?后面的字母,具体如下:
在这里插入图片描述
  然后经过切分、替换,将str的值与<a href='‘>就让往事都随风,都随风吧</a>进行拼接。构造payload:'><img src="#" onmouseover="alert('xss')">

  需要点击有些费尽心机想要忘记的事情,后来真的就忘掉了之后,在将鼠标移动到图片处,才会弹框。
在这里插入图片描述

在这里插入图片描述

2.6 XSS之盲打

  xss盲打是一种攻击场景,我们输出的payload不会在前端进行输出,当管理员查看我们的留言时就会遭到xss攻击。

在这里插入图片描述

  输入常规的payload:<script>alert(/xss/)</script>,登录后台地址去看看(/xssblind/admin_login.php)。

在这里插入图片描述
在这里插入图片描述

2.7 XSS之过滤

  绕过过滤的方法:

  • 前端限制绕过,直接抓包重放,或者修改html前端代码
  • 大小写,比如:<SCRIPT>aLeRT(111)</sCRIpt>
  • 拼凑:<scri<script>pt>alert(111)</scri</script> pt>
  • 使用注释进行干扰:<scri<!--test-->pt>alert(111)</sc <!--test--> ript>
  • 使用其他的标签,绕过script标签,如:<img src="#" onmouseover="alert('xss')">

这里使用payload:<img src="#" onmouseover="alert('xss')">
在这里插入图片描述

2.8 XSS之htmlspecialchars

  htmlspecialchars()函数是php常用方法,是把预定义的字符转换为HTML实体。其语法:htmlspecialchars(string,flags,character-set,double_encode)

  常见的预定义的字符有:

  • &(和号)成为&amp
  • "(双引号)成为&quot
  • (单引号)成为&#039
  • <(小于)成为&lt
  • >(大于)成为&gt

  输入" ' > < 之后,发现除了单引号没被转化外,其他都被转化为HTML实体了。
在这里插入图片描述
  故,构造payload:#' onclick='alert(/xss/),前一个引号闭合href属性,第二个引号闭合onclick属性。
在这里插入图片描述
在这里插入图片描述

2.9 XSS之href输出

  在输入框中输入<script>alert('xss')</script>,打开源代码,发现均被HTML实体化了,闭合标签和闭合属性的方法行不通了。
在这里插入图片描述
  关于<a> 标签的href属性:

  <a> 标签的 href 属性用于指定超链接目标的 URL。href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了 <a> 标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。

  总而言之,在a标签的href属性里面,可以使用javascript协议来执行js,可以尝试使用伪协议绕过。构造payload:javascript:alert(/xss/)

注意:alert中字符串需要用"、' or /包含,数字不用。
在这里插入图片描述

2.10 XSS之JS输出

  输入<script>alert('xss')</script>,发现不行,打开源代码,可以看到payload被带到script标签里去了。
在这里插入图片描述

  构造payload:';alert(1);//';闭合掉当前的语句,然后插入新语句,然后再用//注释掉老语句遗留下来的';

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/54294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享一种针对uni-app相对通用的抓包方案

PART1&#xff0c;前言 近年来混合开发APP逐渐成为主流的开发模式&#xff0c;与传统的开发模式相比混合开发极大的提升了开发效率&#xff0c;同时跨平台的特性也降低了开发成本&#xff0c;一直以来混合开发被诟病的性能问题随着技术的发展也得到改善。技术的发展往往是一把…

前端需要理解的跨平台知识

混合开发是指使用多种开发模开发App的一种开发模式&#xff0c;涉及到两大类技术&#xff1a;原生 Native、Web H5。原生 Native 主要指 iOS&#xff08;Objective C&#xff09;、Android&#xff08;Java&#xff09;&#xff0c;原生开发效率较低&#xff0c;开发完成需要重…

【Java集合学习1】ArrayList集合学习及集合概述分析

JavaArrayList集合学习及集合学习概述 一、Java集合概述 Java 集合&#xff0c; 也叫作容器&#xff0c;主要是由两大接口派生而来&#xff1a;一个是 Collection接口&#xff0c;主要用于存放单一元素&#xff1b;另一个是 Map 接口&#xff0c;主要用于存放键值对。对于Col…

Apache Poi 实现Excel多级联动下拉框

由于最近做的功能&#xff0c;需要将接口返回的数据列表&#xff0c;输出到excel中&#xff0c;以供后续导入&#xff0c;且网上现有的封装&#xff0c;使用起来都较为麻烦&#xff0c;故参考已有做法封装了工具类。 使用apache poi实现excel联动下拉框思路 创建隐藏单元格&a…

如何评估开源项目的活跃度和可持续性?

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

元矿山下的音视频应用

// 近年来&#xff0c;矿业的技术和管理模式随着元宇宙的火爆和自动驾驶技术的发展逐渐变化、升级&#xff0c;进而衍生出元矿山的概念&#xff0c;音视频技术也在其中成为了关键一环。LiveVideoStackCon 2023 上海站邀请了来自希迪智驾的任思亮&#xff0c;为大家分享希迪智…

基于神经网络的3D地质模型

地球科学家需要对地质环境进行最佳估计才能进行模拟或评估。 除了地质背景之外&#xff0c;建立地质模型还需要一整套数学方法&#xff0c;如贝叶斯网络、协同克里金法、支持向量机、神经网络、随机模型&#xff0c;以在钻井日志或地球物理信息确实稀缺或不确定时定义哪些可能是…

机器学习笔记之优化算法(十九)经典牛顿法的收敛性分析

机器学习笔记之优化算法——经典牛顿法的收敛性分析 引言回顾&#xff1a;算法的收敛性分析 Wolfe \text{Wolfe} Wolfe准则的收敛性分析梯度下降法在凸函数的收敛性分析梯度下降法在强凸函数的收敛性分析 经典牛顿法的收敛性分析收敛性定理介绍证明过程关于隐含条件的说明 引言…

FFmpeg5.0源码阅读——FFmpeg大体框架

摘要&#xff1a;前一段时间熟悉了下FFmpeg主流程源码实现&#xff0c;对FFmpeg的整体框架有了个大概的认识&#xff0c;因此在此做一个笔记&#xff0c;希望以比较容易理解的文字描述FFmpeg本身的结构&#xff0c;加深对FFmpeg的框架进行梳理加深理解&#xff0c;如果文章中有…

Android Mvvm设计模式的详解与实战教程

一、介绍 在开发设计模式中&#xff0c;模式经历了多次迭代&#xff0c;从MVC到MVP&#xff0c;再到如今的MVVM。发现的过程其实很简单&#xff0c;就是为了项目更好的管理。 设计模式严格来说属于软件工程的范畴&#xff0c;但是如今在各大面试中或者开发中&#xff0c;设计模…

三方接口调用设计方案

在为第三方系统提供接口的时候&#xff0c;肯定要考虑接口数据的安全问题&#xff0c;比如数据是否被篡改&#xff0c;数据是否已经过时&#xff0c;数据是否可以重复提交等问题 在设计三方接口调用的方案时&#xff0c;需要考虑到安全性和可用性。以下是一种设计方案的概述&a…

C# 学习笔记--个人学习使用 <2>

C# 学习笔记 Chapter 2 比较硬的基础部分Section 1 委托Part 1 Action 与 func 委托的示例Part 2 自定义委托Part 3 委托的一般使用Part 4 委托的高级使用Part 5 适时地使用接口 Interface 取代一些对委托的使用 Section 2 事件Part 1 初步了解事件Part 2 事件的应用Part 3 事件…

【Luniux】解决Ubuntu外接显示器不显示的问题

Luniux】解决Ubuntu外接显示器不显示的问题 文章目录 Luniux】解决Ubuntu外接显示器不显示的问题1. 检查nvidia显卡驱动是否正常2. 更新驱动3. 检查显示器是否能检测到Reference 1. 检查nvidia显卡驱动是否正常 使用命令行 nvidia-smi来检查显卡驱动是否正常&#xff0c;如果…

持续集成与持续交付:现代软件测试的变革之路

引言 在数字化时代&#xff0c;软件开发的速度和复杂性都在不断增加。为了满足市场的需求&#xff0c;企业需要更快、更高效地交付高质量的软件产品。在这样的背景下&#xff0c;持续集成与持续交付&#xff08;CI/CD&#xff09;成为了软件开发和测试的核心实践。 软件开发的…

论文阅读 The Power of Tiling for Small Object Detection

The Power of Tiling for Small Object Detection Abstract 基于深度神经网络的技术在目标检测和分类方面表现出色。但这些网络在适应移动平台时可能会降低准确性&#xff0c;因为图像分辨率的增加使问题变得更加困难。在低功耗移动设备上实现实时小物体检测一直是监控应用的…

小研究 - Java虚拟机性能及关键技术分析

利用specJVM98和Java Grande Forum Benchmark suite Benchmark集合对SJVM、IntelORP,Kaffe3种Java虚拟机进行系统测试。在对测试结果进行系统分析的基础上&#xff0c;比较了不同JVM实现对性能的影响和JVM中关键模块对JVM性能的影响&#xff0c;并提出了提高JVM性能的一些展望。…

css之文字连续光影特效、动画、scss

文章目录 效果图htmlscsscss 效果图 html <div><span>C</span><span>O</span><span>L</span><span>O</span><span>R</span><span>F</span><span>U</span><span>L</span&…

WOFOST模型与PCSE模型应用

实现作物产量的准确估算对于农田生态系统响应全球变化、可持续发展、科学粮食政策制定、粮食安全维护都至关重要。传统的经验模型、光能利用率模型等估产模型原理简单&#xff0c;数据容易获取&#xff0c;但是作物生长发育非常复杂&#xff0c;中间涉及众多生理生化过程&#…

Java学数据结构(2)——树Tree 二叉树binary tree 二叉查找树 AVL树 树的遍历

目录 引出什么是树Tree&#xff1f;树的实现二叉树binary tree查找树ADT——二叉查找树Binary Search Tree1.contains方法2.findMax和findMin方法3.insert方法4.remove方法&#xff08;复杂&#xff09;二叉查找树的深度 AVL(Adelson-Velskii和Landis)树——平衡条件(balance c…