目次
1. 0x00 序文
多くの場所で、クロスドメインかどうかを確認できます。
たとえば、特定の手順、CSRF、フラッシュ クロスドメイン ハイジャックなどへのリンクです。
2. 基礎知識
1、フラッシュ
HTML言語の機能は非常に限られており、人々が期待するようなダイナミックな効果を期待するデザインを実現できないため、時代の要求に応じてさまざまなスクリプト言語が登場し、Webデザインはより多様化しています。ただし、プログラミングには特定のプログラミング スキルが必要であるため、必ずしも人気があるわけではありません。人々はシンプルで直感的かつ強力なアニメーション デザイン ツールを必要としています。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 タグ (属性 allowed-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标签
このノードは、サードパーティのドメイン フラッシュがユーザー定義の 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>
*から抜け穴があることがわかります