【文件上传-配置文件】crossdomain.xml跨域策略配置文件上传

2023-09-13 18:45:45

目录

一、0x00 前言

二、基础知识

1、Flash

2、crossdomain.xml文件

3、crossdomain.xml格式

4、crossdomain.xml相关参数

三、漏洞利用

1、方法:

2、上传漏洞配置文件


一、0x00 前言

在很多地方都会见查是否跨域

比如某些特定的步骤、CSRF、flash跨域劫持等链接



二、基础知识

1、Flash

由于HTML语言的功能十分有限,无法达到人们的预期设计,以实现令人耳目一新的动态效果,在这种情况下,各种脚本语言应运而生,使得网页设计更加多样化。然而,程序设计总是不能很好地普及,因为它要求一定的编程能力,而人们更需要一种既简单直观又有功能强大的动画设计工具,而Flash的出现正好满足了这种需求。

2、crossdomain.xml文件

一般在根目录下(在根目录下的配置文件称为“主策略文件”)。

若在根目录不存在主策略文件,则该域将禁止任何第三方域的flash跨域请求。

3、crossdomain.xml格式

<?xml version="1.0"?>

<cross-domain-policy>
<allow-access-from domain="www.xxx.com" />
</cross-domain-policy>

其中www.xxx.com是可信任的域名

4、crossdomain.xml相关参数

1、site-control标签(属性permitted-cross-domain-policies)

属性值:
none:             不允许使用loadPolicyFile方法加载任何策略文件,包括此主策略文件。
master-only:      只允许使用主策略文件[默认值]。
by-content-type:  只允许使用loadPolicyFile方法加载HTTP/HTTPS协议下Content-Type 为text/x-cross-domain-policy的文件作为跨域策略文件。文章来源地址:https://www.yii666.com/article/504083.html
by-ftp-filename:  只允许使用loadPolicyFile方法加载FTP协议下文件名为crossdomain.xml的文件作为跨域策略文件。
all:              可使用loadPolicyFile方法加载目标域上的任何文件作为跨域策略文件


示例:
<cross-domain-policy>
<site-control permitted-cross-domain-policies="by-content-type"/>
</cross-domain-policy>


2、allow-access-from标签

属性值:
domain:    指定某IP地址、域或通配符域(任何域)
to-ports:  指定允许访问读取本域内容的socket连接端口范围(如to-ports="1100,1120-1125",也可使用通配符(*)表示允许所有端口)
secure:    指明信息是否经加密传输。当crossdomain.xml文件使用https加载时,secure默认设为true


示例:
<cross-domain-policy>
<allow-access-from domain="*.baidu.com" secure="true" />
</cross-domain-policy>


3、allow-access-from-identity标签

该节点配置跨域访问策略为允许有特定证书的来源跨域访问本域上的资源

<allow-access-from-identity>
<signatory>
<certificate
fingerprint="04:ac:……格式的证书"
fingerprint-algorithm="sha-1"/>
</signatory>
</allow-access-from-identity>

4、allow-http-request-headers-from标签

此节点授权第三方域flash向本域发送用户定义的http头

属性值:
domain:     与allow-access-from中的domain相同
headers:    表明允许发送的http头。可用通配符(*)(以逗号隔开的列表)
secure:     与allow-access-from中的secure相同

示例:
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>



三、漏洞利用

1、方法:

1、找到任意文件上传点(先测试能否getshell)

2、若无法getshell(尝试xss)

3、若无法xss(尝试上传配置文件)

上传配置文件是我们最后的选择

2、上传漏洞配置文件

如下crossdomain.xml文件就存在漏洞

(尝试上传存在漏洞配置文件到根目录)

<?xml version="1.0"?>

<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

从*就可以看出存在漏洞了

更多推荐

路由和node环境搭建

路由和node环境搭建1.1什么是路由1.2案例实操1.2.3效果展示二、配置Node.js2.1新建两个文件夹2.2配置环境变量1.1什么是路由在计算机网络中,路由(Routing)是指根据某种算法将数据包从源节点传输到目标节点的过程。在Web开发中,路由则指的是根据URL地址的不同,将用户请求导向对应的处理程序或页

解锁前端Vue3宝藏级资料 第五章 Vue 组件应用 3( Slots )

5.4Slots我们已经了解到组件能够接收任意类型的JavaScript值作为props,但组件要如何接收模板内容呢?在某些场景中,我们可能想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些片段。Slots可用于将Html内容从父组件传递到子组件进行显示。例如,你创建一个名为Button的组件,并且只想更改按

2个比较经典的PHP加密解密函数分享

项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理。最常见的应用在用户登录以及一些API数据交换的场景。笔者收录了一些比较经典的PHP加密解密函数代码,分享给大家。加密解密原理一般都是通过一定的加密解密算法,

JavaScript 基础 - 第1天笔记

JavaScript基础-第1天了解变量、数据类型、运算符等基础概念,能够实现数据类型的转换,结合四则运算体会如何编程。体会现实世界中的事物与计算机的关系理解什么是数据并知道数据的分类理解变量存储数据的“容器”掌握常见运算符的使用,了解优先级关系知道JavaScript数据类型隐式转换的特征介绍掌握JavaScript

头歌平台相关verilog练习

以下题目不具有难易程度的连续性文章目录1、三人表决电路2、多路选择器3、电路功能描述—门级原始结构4、电路功能描述—行为定义—连续赋值5、电路功能描述—行为定义—过程语句1、三人表决电路本关需要你根据所学的组合逻辑及数字电路的知识完成三人表决电路的设计,实现少数服从多数的表决规则,根据逻辑真值表和逻辑表达式完成表决功能

netty之数据读写源码阅读

数据读写write从client端的写开始看client与服务端建立完connect后可以从future里拿到连接的channel对象。这里的channel是io.netty.channel.Channel对象。调用其channel.writeAndFlush(msg);方法可以进行数据发送。writeAndFlush

Android 应用上线注意事项

将Android应用上线到GooglePlay商店需要仔细注意一系列问题,以确保应用的质量、安全性和用户体验。以下是一些在Android应用上线过程中需要注意的关键问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。1.开发者账号:确保你拥有有效的GooglePlay开发者账号,可

【ASP.NET Core】应用脱机文件 (app_offline.htm)

文章目录概述锁定的部署文件来源jenkins进行CI失败是可能app_offline.htm不会被自动删除导致ASP.NETCore应用异常,发布成功后则需手动删除该文件概述在很多情况下,需要在对相关组件(如数据库或Web服务)进行更改时使Web应用程序脱机。通常,在IIS和ASP.NET中,可以通过将名为App_of

【深度学习实验】前馈神经网络(四):自定义逻辑回归模型:前向传播、反向传播算法

目录一、实验介绍二、实验环境1.配置虚拟环境2.库版本介绍三、实验内容0.导入必要的工具包1.逻辑回归Logistic类a.构造函数__init__b.__call__(self,x)方法c.前向传播forwardd.反向传播backward2.模型训练3.代码整合一、实验介绍实现逻辑回归模型(Logistic类)实现

动态规划:子序列问题(C++)

动态规划:子序列问题前言子序列问题1.最长递增子序列(中等)2.摆动序列(中等)3.最长递增子序列的个数(中等)4.最长数对链(中等)5.最长定差子序列(中等)6.最长的斐波那契子序列的长度(中等)7.最长等差序列(中等)8.等差数列划分II-子序列(困难)前言动态规划往期文章:动态规划入门:斐波那契数列模型以及多状态

8种结构型设计模式对比

一、适配器模式简介适配器模式是一种结构型设计模式,它用于将不兼容的接口转换为可兼容的接口。适配器模式允许两个不兼容的类能够协同工作,通过将一个类的接口转换为另一个类所期望的接口形式。这样就能够在不修改现有代码的情况下,使两个不兼容的类能够相互协作。使用场景适配器模式通常在以下场景中使用:当需要将现有类的接口转换为其他接

热文推荐