[파일 업로드 - 구성 파일] crossdomain.xml 크로스 도메인 정책 구성 파일 업로드

목차

1. 0x00 서문

2. 기본지식

1, 플래시

2. crossdomain.xml 파일

3. crossdomain.xml 형식

4. crossdomain.xml 관련 매개변수

3. 취약점 악용

1. 방법:

2. 취약점 구성 파일 업로드


1. 0x00 서문

여러곳에서 크로스도메인 여부를 확인할 수 있습니다.

예를 들어 특정 단계에 대한 링크, CSRF, 플래시 도메인 간 하이재킹 등이 있습니다.



2. 기본지식

1, 플래시

HTML 언어의 기능은 매우 제한적이며 사람들이 기대하는 디자인을 달성하여 상쾌한 동적인 효과를 얻을 수 없기 때문에 시대의 요구에 따라 다양한 스크립팅 언어가 등장하여 웹 디자인을 더욱 다양하게 만들고 있습니다. 그러나 프로그래밍은 특정 프로그래밍 능력이 필요하기 때문에 항상 대중화될 수는 없으며 사람들은 간단하고 직관적이며 강력한 애니메이션 디자인 도구가 필요하며 Flash의 출현은 이러한 요구를 충족시킵니다.

2. crossdomain.xml 파일

일반적으로 루트 디렉터리에 있습니다(루트 디렉터리의 구성 파일을 "마스터 정책 파일"이라고 함).

루트 디렉터리에 마스터 정책 파일이 없으면 도메인은 타사 도메인의 플래시 도메인 간 요청을 금지합니다.

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. 사이트 제어 태그(허용된 크로스 도메인 정책 속성)

属性值:
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. 태그에서 액세스 허용

属性值:
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. ID 태그에서 액세스 허용

노드는 특정 인증서가 있는 소스가 도메인 전체에서 이 도메인의 리소스에 액세스할 수 있도록 허용하는 교차 도메인 액세스 정책으로 구성됩니다.

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

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

이 노드는 사용자 정의 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>



3. 취약점 악용

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>

*를 보면 허점이 있음을 알 수 있다

추천

출처blog.csdn.net/qq_53079406/article/details/132859748