web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)

题目

页面显示为文件上传

随便上传一个文件看看

上传一个文本文件显示

上传了一个图片显示

上传包含一句话木马的图片

上传了一个包含php一句话木马的文件,显示如上

换一个写法

上传成功

尝试上传.htaccess,上传失败,用抓包修改文件后缀

返回题目首页,找到了题目源码

复制代码
<?php
session_start();
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> 
<title>Upload</title>
<form action=\"\" method=\"post\" enctype=\"multipart/form-data\">
上传文件<input type=\"file\" name=\"uploaded\" />
<input type=\"submit\" name=\"submit\" value=\"上传\" />
</form>";
error_reporting(0);
if(!isset($_SESSION['user'])){
    $_SESSION['user'] = md5((string)time() . (string)rand(100, 1000));
}
if(isset($_FILES['uploaded'])) {
    $target_path  = getcwd() . "/upload/" . md5($_SESSION['user']);
    $t_path = $target_path . "/" . basename($_FILES['uploaded']['name']);
    $uploaded_name = $_FILES['uploaded']['name'];
    $uploaded_ext  = substr($uploaded_name, strrpos($uploaded_name,'.') + 1);
    $uploaded_size = $_FILES['uploaded']['size'];
    $uploaded_tmp  = $_FILES['uploaded']['tmp_name'];
 
    if(preg_match("/ph/i", strtolower($uploaded_ext))){
        die("后缀名不能有ph!");
    }
    else{
        if ((($_FILES["uploaded"]["type"] == "
            ") || ($_FILES["uploaded"]["type"] == "image/jpeg") || ($_FILES["uploaded"]["type"] == "image/pjpeg")) && ($_FILES["uploaded"]["size"] < 2048)){
            $content = file_get_contents($uploaded_tmp);
            if(preg_match("/\<\?/i", $content)){
                die("诶,别蒙我啊,这标志明显还是php啊");
            }
            else{
                mkdir(iconv("UTF-8", "GBK", $target_path), 0777, true);
                move_uploaded_file($uploaded_tmp, $t_path);
                echo "{$t_path} succesfully uploaded!";
            }
        }
        else{
            die("上传类型也太露骨了吧!");
        }
    }
}
?>

文件后缀名为image/jpeg,抓包修改文件后缀名

然后使用蚁剑连接

或者使用show_source() 函数,进行post传参

别的解法:

GXYCTF2019BabyUpload wp_文件上传ph被过滤了ctf-CSDN博客

相关推荐
云栖梦泽在14 小时前
稳如狗网络工具箱:IP、DNS、WebRTC、测速、连通性和全球延迟检测工具简明介绍
网络·网络协议·tcp/ip·网络安全·性能优化·webrtc
网络安全零基础教程14 小时前
网络安全春招面试避坑与复盘指南
linux·网络·安全·web安全·面试·职场和发展
汉堡包00117 小时前
【工具分享】--威胁情报平台大全
学习·安全·web安全·信息安全
介一安全18 小时前
【SRC】基础思路篇15:JWT安全测试完全指南
web安全·jwt·安全性测试·src
云水一下21 小时前
零基础玩转bWAPP靶场(二十三):SQL 注入——存储型(SQLite)
web安全·sql注入·bwapp
倚栏听雨_ylty21 小时前
H3C交换机关闭Telnet和HTTP服务实例
运维·网络·tcp/ip·网络安全
白猫不黑1 天前
SQL注入实战:手工注入全流程详解
网络·数据库·sql·web安全·网络安全·信息安全
是三一seven1 天前
Sql注入基础
数据库·安全·网络安全
学逆向的2 天前
汇编——JCC指令
开发语言·汇编·网络安全
腾霄星月2 天前
Cobalt Strike(CS)内网渗透工具核心重点知识总结
网络安全·cs·cobalt strike