XSS | 反射型 XSS 攻击

关注这个漏洞的其他相关笔记:XSS 漏洞 - 学习手册-CSDN博客

0x01:反射型 XSS — 理论篇

反射型 XSS 又称非持久型 XSS,这种攻击方式往往具有一次性。

常见的攻击方式: 攻击者通过电子邮件等方式将包含 XSS 代码的恶意链接发送给目标用户。当目标用户访问该链接时,服务器接收该目标用户的请求并进行处理,然后服务器把带有 XSS 代码的数据发送给目标用户的浏览器,浏览器解析这段带有 XSS 代码的恶意脚本后,就会触发 XSS 攻击。

其攻击流程如下图所示:

0x02:反射型 XSS — 实战篇

实验工具准备

  • PHP 运行环境:phpstudy_x64_8.1.1.3.zip(Apache2.4.39 + PHP 5.3.29nts)

  • 实验源码包(附配置流程):ReflectiveXSSLab.zip

实验环境的搭建流程我放在了 ReflectiveXSSLab.zip 中了,这里就不多说了,下面直接开始演示。

0x0201:反射型 XSS 攻击

在浏览器的导航栏中输入下面的网址,访问实验环境:

 http://127.0.0.1/ReflectiveXSSLab

可以发现页面发生了跳转,直接跳转到了一个 404 Not Found 的页面。值得注意的是,该页面回显的 404 - Page XXX Not Found,中的 XXX 似乎是通过 GET 请求传递并回显的。

我们可以修改一下导航栏中 error 字段的内容,并重新访问:

 http://127.0.0.1/ReflectiveXSSLab/404.php?error=Blue17

可以发现,error 字段的内容果然会直接回显回页面中,我们右击页面查看网页源码,看看回显的位置:

发现我们传递的参数直接回显在了<h1> 标签中,那么攻击者可以尝试构造下面的 Payload,来攻击用户:

 http://127.0.0.1/ReflectiveXSSLab/404.php?error=<script>alert(/You've Been Tricked/)</script>

可以看到,页面成功加载了攻击者传入的 XSS 代码,并运行。如果点击了 ”确定“ 按钮,可以看到,页面基本没有啥影响(弹窗只是可视化较强,真攻击谁还给你弹窗呀):

至此,一个反射型 XSS 攻击的全流程已经演示完毕。

此时,细心的小伙伴可能会说,这恶意链接这么明显,谁会中招,来,看看这个:性感美女图片 1.0

 [性感美女图片 1.0](http://127.0.0.1/ReflectiveXSSLab/404.php?error=%3Cscript%3Ealert(/You%27ve%20Been%20Tricked/)%3C/script%3E)

如果本地搭建了环境的宝子,点击了上方的链接,估计会跳出这个东东,就中招咯:

此时,有宝子又会说,你这太明显了,点了 ”确定“ 后又是一个 404 Not Found,而且 URL 这么怪,是个人都能发现这个链接有猫腻,马上举报!

那我们进化一下,看看这个:性感美女图片 2.0

 http://127.0.0.1/ReflectiveXSSLab/404.php?error=%3Cscript%3Ealert%28%2FYou%27ve%20Been%20Tricked%2F%29%3Blocation.href%3D%27http%3A%2F%2Fimg1.baidu.com%2Fit%2Fu%3D4150137793%2C3562379662%26fm%3D253%26app%3D138%26f%3DJPEG%3Fw%3D800%26h%3D1202%27%3C%2Fscript%3E

为了方便演示,笔者给 2.0 还是设置了弹窗(保留了弹窗功能才让你知道你被攻击了),点击了弹窗的确认后,会弹出啥,笔者这里就不截图了,怕过不了审,留给读者自己摸索吧。

0x0202:反射型 XSS 代码分析

下面是触发反射型 XSS 漏洞的关键代码:

 <?php$errorinfo = $_GET["error"];  // 获取 GET 请求传入的 error 值if (isset($errorinfo) == false) {$errorinfo = "";  // 如果未传递 error 参数,则置空}echo "<h1>404 - Page " . $errorinfo . " Not Found 未找到</h1>";?>

代码 $_GET["error"] 通过 GET 方式获取参数 error 的值,然后没有做任何过滤,就直接通过 echo 拼接到一个 HTML 标签中输出回页面,这就是漏洞产生的原因。

当用户对 error 传入 <script>alert(/xss/)</script> 时,输出到页面的 HTML 代码实际上是:

 <h1>404 - Page <script>alert(/xss/)</script> Not Found 未找到</h1>

此段 HTML 代码中包含了一个 JavaScript 代码块,且此 JavaScript 代码块会引起浏览器的弹窗。

0x03:参考文献

  • 《Web 安全攻防:渗透测试实战指南》 ISBN 978-7-121-34283-7

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Linux标准IO(五)-I/O缓冲详解

1.简介 出于速度和效率的考虑&#xff0c;系统 I/O 调用&#xff08;即文件 I/O&#xff0c;open、read、write 等&#xff09;和标准 C 语言库 I/O 函数&#xff08;即标准 I/O 函数&#xff09;在操作磁盘文件时会对数据进行缓冲&#xff0c;本小节将讨论文件 I/O 和标准 I/…

蓝桥杯--STM32G431RBT6(TIM定时器的输出频率和占空比,含详细原理介绍和使用方法)

目录 一、前言 二、代码 实现功能&#xff1a;​编辑 按如图配置 定义变量 编写执行代码 显示在LCD上 加入按键效果 三、效果展示 四、代码开源 一、前言 ARR 即自动重装载值&#xff08;Auto Reload Register&#xff09;。相当于一个水杯&#xff0c;水杯容量&am…

【EXCEL数据处理】000002 案列 条件格式之重复值。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。

【EXCEL数据处理】000002 案列 条件格式之重复值。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来&#xff0c;方便查看。 在日常的数据处理和分析工作中&#xff0c;Excel 是一款强大而广泛使用的工具。其中&#xff0c;条件格式中的重复值功能对于快…

Golang | Leetcode Golang题解之第438题找到字符串中所有字母异位词

题目&#xff1a; 题解&#xff1a; func findAnagrams(s, p string) (ans []int) {sLen, pLen : len(s), len(p)if sLen < pLen {return}count : [26]int{}for i, ch : range p {count[s[i]-a]count[ch-a]--}differ : 0for _, c : range count {if c ! 0 {differ}}if diff…

Java | Leetcode Java题解之第438题找到字符串中所有字母异位词

题目&#xff1a; 题解&#xff1a; class Solution {public List<Integer> findAnagrams(String s, String p) {int sLen s.length(), pLen p.length();if (sLen < pLen) {return new ArrayList<Integer>();}List<Integer> ans new ArrayList<Int…

滚珠丝杠在人形机器人及线控制动和转向中大放异彩

直线驱动器用于对旋转角度不大、高负载的场景,在人形机器人中多用于四肢。直线驱动器多采取“电机+丝杠”,将旋转运动转为关节末端的直线运动,能够起到较好的支撑和承重效果,能够较好的适配应用场景的负载需求。 特斯拉人形机器人Optimus 双足、双臂采用连杆结构,连杆末端…

25:stm32的低功耗模式

低功耗模式 1、PWR电源控制2、低功耗模式 1、PWR电源控制 PWR&#xff08;Power Control&#xff09;电源控制。PWR负责管理STM32内部的电源供电部分&#xff0c;可以实现可编程电压监测器和低功耗模式的功能&#xff0c;这里我们只学习低功耗模式的功能&#xff0c;低功耗模式…

MySQL --用户管理

文章目录 1.用户1.1用户信息1.2创建用户1.3删除用户1.4修改用户密码 2.数据库的权限2.1给用户授权2.2回收权限 如果我们只能使用root用户&#xff0c;这样存在安全隐患。这时&#xff0c;就需要使用MySQL的用户管理。 1.用户 1.1用户信息 MySQL中的用户&#xff0c;都存储在系…

性能调优知识点(mysql)一

Mysql 索引 索引介绍 1.索引是排好序的数据结构。他的目的是为了提升查询效率。 2.mysql存储引擎分为innodb和myisam。它是用来形容表的。 innodb支持事务、外键、行锁 myisam不支持事务、外键 3.myisam使用3个文件来存储每张表数据&#xff0c;每个文件名以表名开头&#x…

Python | Leetcode Python题解之第440题字典序的第K小数字

题目&#xff1a; 题解&#xff1a; class Solution:def getSteps(self, cur: int, n: int) -> int:steps, first, last 0, cur, curwhile first < n:steps min(last, n) - first 1first * 10last last * 10 9return stepsdef findKthNumber(self, n: int, k: int)…

GS-SLAM论文阅读笔记--MM3DGS SLAM

前言 多传感器融合GS-SLAM的另一个IROS2024,不过这篇没有用到激光雷达&#xff0c;而是相机和IMU结合而实现的。今天看一下这篇。 文章目录 前言1.背景介绍2.关键内容2.1 跟踪2.2 深度监督2.3 惯性融合2.4建图2.5 总体流程 3.文章贡献4.个人思考 1.背景介绍 虽然SLAM方法使用…

class 023 随机快速排序

这篇文章是看了“左程云”老师在b站上的讲解之后写的, 自己感觉已经能理解了, 所以就将整个过程写下来了。 这个是“左程云”老师个人空间的b站的链接, 数据结构与算法讲的很好很好, 希望大家可以多多支持左程云老师, 真心推荐. https://space.bilibili.com/8888480?spm_id_f…

MySql简介及发展

MySql简介及发展 1、MySql起源和分支 MySQL 是最流行的关系型数据库软件之一&#xff0c;由于其体积小、速度快、开源免费、简单易用、维护成本 低等&#xff0c;在集群架构中易于扩展、高可用&#xff0c;因此深受开发者和企业的欢迎。 Oracle和MySQL是世界市场占比最高的两…

从入门到入土:计算机视觉CV学习路线图

在当今这个被数据和图像淹没的世界&#xff0c;计算机视觉&#xff08;CV&#xff09;正如一位聪明绝顶的魔术师&#xff0c;能够从无数的图像中提取出有意义的信息。对于那些初入这个领域的新人&#xff0c;学习计算机视觉既是一场冒险&#xff0c;也是一场盛宴。让我作为一位…

C语言进阶之泛型列表(Generic List)

1.前言 数据结构是需要泛型的,而在C语言中实现泛型就只能去用指针魔法了,来跟我一起实现吧!所有代码经测试未发现明显bug,可放心食用. 2.代码截图展示 1.list.h 2.main.c 3.list.c 3.结语 这次分享的列表采用动态数组的方式实现,下次我会去用链表实现,两种实现方式各有优劣,希…

20 vue3之自定义hooks

Vue3 自定义Hook的作用 主要用来处理复用代码逻辑的一些封装 Vue3 的 hook函数 相当于 vue2 的 mixin, 不同在与 hooks 是函数Vue3 的 hook函数 可以帮助我们提高代码的复用性, 让我们能在不同的组件中都利用 hooks 函数 这个在vue2 就已经有一个东西是Mixins mixins就是将…

代码随想录算法训练营第57天 | 寻宝

寻宝 题目描述 在世界的某个区域&#xff0c;有一些分散的神秘岛屿&#xff0c;每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路&#xff0c;方便运输。 不同岛屿之间&#xff0c;路途距离不同&#xff0c;国王希望你可以规划建公路的方案&#xff0c;如何…

PostgreSQL 创建表,常规表、外部表、分区表区别讲解

PostgreSQL 创建表&#xff0c;常规表、外部表、分区表区别讲解 创建表&#xff0c;常规表、外部表、分区表区一、常规表1. 定义和特点&#xff1a;2. 适用场景&#xff1a; 二、外部表1. 定义和特点&#xff1a;2. 适用场景&#xff1a; 三、分区表1. 定义和特点&#xff1a;2…

什么是Agent智能体?

你好&#xff0c;我是三桥君 近期&#xff0c;从各大厂商的年度大会到多个大型AI峰会&#xff0c;三桥君明显感受到行业风气的转变。这些会议不仅展示了众多AI Agent的实际应用案例&#xff0c;还有专家们对未来发展的预测。一时间&#xff0c;“Agent”这个词成为了热门词汇&…

【论文阅读】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion

Abstract 本文介绍了扩散策略&#xff0c;这是一种通过将机器人的视觉运动policy表示为条件去噪扩散过程来生成机器人行为的新方法。我们对来自 4 个不同的机器人操作基准的 15 个不同任务的扩散策略进行了基准测试&#xff0c;发现它始终优于现有的 state-of-the-art 机器人学…