BUUCTFのWEB [SUCTF 2019]のチェックイン

BUUCTFのWEB [SUCTF 2019]のチェックイン

ページを開き、アップロードインターフェースです
ここに画像を挿入説明
が、トピックは元に提示!また、フラグを見て上記のGitHub、LEは~~
ここに画像を挿入説明
、これは重要ではありません、私はソースコードを見に来ました!index.phpのソースコードを次のように:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Upload Labs</title>
</head>

<body>
    <h2>Upload Labs</h2>
    <form action="index.php" method="post" enctype="multipart/form-data">
        <label for="file">文件名:</label>
        <input type="file" name="fileUpload" id="file"><br>
        <input type="submit" name="upload" value="提交">
    </form>
</body>

</html>

<?php
// error_reporting(0);
$userdir = "uploads/" . md5($_SERVER["REMOTE_ADDR"]);
if (!file_exists($userdir)) {
    mkdir($userdir, 0777, true);
}
file_put_contents($userdir . "/index.php", "");
if (isset($_POST["upload"])) {
    $tmp_name = $_FILES["fileUpload"]["tmp_name"];
    $name = $_FILES["fileUpload"]["name"];
    if (!$tmp_name) {
        die("filesize too big!");
    }
    if (!$name) {
        die("filename cannot be empty!");
    }
    $extension = substr($name, strrpos($name, ".") + 1);
    if (preg_match("/ph|htacess/i", $extension)) {
        die("illegal suffix!");
    }
    if (mb_strpos(file_get_contents($tmp_name), "<?") !== FALSE) {
        die("&lt;? in contents!");
    }
    $image_type = exif_imagetype($tmp_name);
    if (!$image_type) {
        die("exif_imagetype:not image!");
    }
    $upload_file_path = $userdir . "/" . $name;
    move_uploaded_file($tmp_name, $upload_file_path);
    echo "Your dir " . $userdir. ' <br>';
    echo 'Your files : <br>';
    var_dump(scandir($userdir));
}

目に見える拡張、コンテンツ検査、型式試験を検出、分析します。
ここに画像を挿入説明
内容はまだバイパスすることができます!タイプ検出が,,,,バイパスすることができる
,,,馬の背中が写真をアップロードすることができないが、写真はああ解決できないかを検出接尾!
絵馬を構築するには、次の
ここに画像を挿入説明
名前を変更1.gifが正常にアップロード!
ここに画像を挿入説明
パスも知っています!,,,,私はないことが判明し、脆弱性を解析するApacheのビットを試してみて
、私たちは、PHPコードの実行に解析、その後、写真をアップロードしますが、.htacessを濾過、および、させてください
、後でプロファイルも.htacess機能を持っているだけでなく、知っていますその.user.iniファイルがされ
ここに画像を挿入説明
PHP_INI_PERDIRとINI設定PHP_INI_USERモードで.user.iniで識別することができ、我々は、オプションのリストを見ることができる
のphp.iniディレクティブのリスト
auto_append_fileでインクルードことが違いであれば、auto_prepend_file 2つの設定ファイルが自動的に含まれています,,,前と後のファイルが含まれている
構築アップロード:

GIF89a
auto_prepend_file=1.gif

はい、正常にアップロード
ここに画像を挿入説明
し、コードを見て、我々はまた、自動的に空のindex.phpファイルの内容を生成しますが、理由は.user.iniの存在のことを知っている
index.phpファイルが自動的に1.gifにも含まれます、あなたはアクセスのindex.phpを見ることができます:
ここに画像を挿入説明
直接接続アリの剣を使用してと何も間違っては:
ここに画像を挿入説明
フラグを取得します:
ここに画像を挿入説明

206元記事公開 ウォンの賞賛130 ビューに10万+を

おすすめ

転載: blog.csdn.net/qq_42967398/article/details/103511408