BUUCTF WEB [SUCTF 2019] CheckIn

BUUCTF WEB [SUCTF 2019] CheckIn

Abra uma página é fazer upload de interface:
Aqui Insert Picture Descrição
mas os temas apresentados para a fonte! GitHub acima, também olhou para a bandeira le ~ ~
Aqui Insert Picture Descrição
isso não é importante, eu vim para ver o código fonte! ! ! código-fonte index.php como segue:

<!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));
}

Analisar, detectar extensão visível, o teste de conteúdo, tipo de teste:
Aqui Insert Picture Descrição
o conteúdo ainda pode ser ignorada! ! detecção do tipo pode ser contornado ,,,,
sufixo detectar como ,,, lombo de um cavalo pode fazer upload de fotos, mas as imagens não podem ser resolvidos ah! !
Para construir um cavalo imagem:
Aqui Insert Picture Descrição
1.gif renomeado enviada com sucesso!
Aqui Insert Picture Descrição
Path também sei! Tente uma vulnerabilidade pouco apache análise, não encontrou ,,,,
deve deixar-nos fazer upload de fotos, em seguida, analisados em execução de código PHP, mas .htacess é filtrada e,
depois, sabe tão bem como perfis também tem a função .htacess, que é o arquivo .user.ini
Aqui Insert Picture Descrição
pode ser identificado em .user.ini no modo PHP_INI_USER PHP_INI_PERDIR e INI configurações, podemos olhar para uma lista de opções
diretivas do php.ini lista
auto_append_file, auto_prepend_file dois arquivos de configuração são automaticamente incluídos se essa é a diferença ,,, antes e após o arquivo contém
carregamento construída:

GIF89a
auto_prepend_file=1.gif

Sim, carregado com sucesso
Aqui Insert Picture Descrição
e olhada no código também sabemos que gera automaticamente um conteúdo de arquivo index.php vazio, mas por causa da presença de .user.ini
arquivo index.php será incluído automaticamente 1.gif, você pode ver o index.php acesso :
Aqui Insert Picture Descrição
nada de errado com o uso de uma espada conexão formiga direta:
Aqui Insert Picture Descrição
obter bandeira:
Aqui Insert Picture Descrição

Publicado 206 artigos originais · ganhou elogios 130 · Exibições 100.000 +

Acho que você gosta

Origin blog.csdn.net/qq_42967398/article/details/103511408
Recomendado
Clasificación