CTFHub 技能树-web文件上传

2023-11-02

目录

无过滤:

前端过滤:

.htaccess:

MIME绕过:

双写后缀:

文件头检查:


无过滤:

直接传入一句话木马:

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

然后用蚁剑连一下:

得到flag:

前端过滤:

function checkfilesuffix()

{

    var file=document.getElementsByName('file')[0]['value'];

    if(file==""||file==null)

    {

        alert("请添加上传文件");

        return false;

    }

    else

    {

        var whitelist=new Array(".jpg",".png",".gif");

        var file_suffix=file.substring(file.lastIndexOf("."));

        if(whitelist.indexOf(file_suffix) == -1)

        {

            alert("该文件不允许上传");

            return false;

        }

    }

}

只有jpg、png、gif格式可以上传。

先上传符合形式的文件,然后用bp抓包,改包。

改为:

再点击Forwdrd放回去,即可上传成功。

然后连接蚁剑,得到flag。

.htaccess:

由于和一道题是考察有关htacess的知识点,所以补充一了下自己的知识空白:

htaccess文件是Apache服务器中的一个配置文件,他负责相关目录下的网页配置。通过htaccess文件,可以帮助我们实现:网页301重定向,自定义404错误页面,改变文件扩展名,允许或组织特定的用户或者,目录的访问,禁止目录列表,配置默认文档等功能。

由于.htaccess文件可以被替换掉,所以首先上传一个名为.htaccess的文件。

文件意为将png文件当作php文件解析。

所以上传一个后缀为png且含有一句话木马的文件即可。

然后连接蚁剑得到flag。

MIME绕过:

先上传1.png文件:

然后抓包,放到Repeater里边修改上传。

然后用蚁剑连一下,得到flag。

00截断:

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。

所以我们可以利用这一特点来用%00上传文件。

先上传1.png文件,然后抓包,改一下:

然后放回去,即可上传成功(注意不要直接进入Repeater,不能上传,好像是解析不了%00)

然后用蚁剑连一下,得到flag。

而且可以看一下,上传的确实是php文件,说明了%00截断成功。

双写后缀:

上传时将 Burpsuite 截获的数据包中文件名修改为1.pphpph,当第一个php被截获后,第一个的p和后边的hp有形成了一个php。

首先我直接上传了一个1.php文件

发现php被过滤,我又多试了几次,发现只会过滤一个php,所以利用双写绕过。

上传一个1.pphphp文件。

会自动变为1.php。

然后用蚁剑连接一下。

得到flag。

文件头检查:

上传png木马文件时会发现文件错误,应该是对文件进行了分析,看到名字就知道解析的是文件头,所以直接改一下文件头。

先上传一个正常的png文件然后将绝大部分后边文件删去(文件最好小一点,只留下文件的头部)

然后直接用蚁剑连。

得到flag。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CTFHub 技能树-web文件上传 的相关文章

  • 按通用值对值进行分组:userid 和 ipaddress

    我正在解决数据库中的一个问题 我正在尝试查找使用多个帐户的用户 我有一个用户 ID 和使用的 IP 地址的列表 如下所示 用户 ID IP 地址 1 IP 地址 13 2 IP 地址 23 1 IP 地址 12 4 IP地址56 9 IP
  • 使用 php 获取当前月份的最后 3 个月

    我想获取当前月份最近 3 个月的名称 例如当前月份是八月 所以 我想要六月 七月 八月这样的数据 我已经尝试过这段代码echo date F strtotime 3 months 它只返回六月 如何使用 php 获取当前月份的最后 3 个月
  • SMTP 配置在生产中不起作用

    我正在尝试在提交表单时发送电子邮件 我正在使用 PHPMailer 使用以下配置发送邮件 mail new PHPMailer mail gt isSMTP mail gt Host mail example in mail gt Port
  • PHP 或 WAMP 不确定是什么

    我已经安装了 WAMP 服务器 2 0 PHP 5 4 3 安装WAMP后我已经重新启动了所有服务并且可以打开 phpinfo 显示良好 phpmyadmin 它也显示得很好 我可以使用数据库 然而 当在 Chrome 中运行简单的 php
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 在 Laravel 5 中截断表

    描述 我有一个充满测试数据的表 有时 我想清除它以获取新数据 我可以在 DBMS 应用程序中执行截断 例如MySQL 工作台 但我试图在我的应用程序中实现它 Goal 创建一个按钮 单击时截断数据库中的表 这是我的步骤 1 声明一条路线 R
  • 如何在类似 MVC 的页面中加载基于漂亮 URL 的类?

    我想请教一些关于如何解决这个问题的提示 我正在尝试构建自己的 MVC 网站 我了解了 URL 的基础知识 http example com blog cosplay cosplayer expo today 博客 gt 控制器cosplay
  • 限制自己超载外部 API 的速率

    我发现了很多信息和脚本示例 展示了如何对 API 用户进行速率限制 但我无法找到任何示例来说明在施加这些限制时如何对您自己的 API 请求进行速率限制 我总是用诸如以下的代码来限制我的脚本sleep or usleep命令 但感觉这是一种低
  • 将 Google 信任徽章添加到 Magento

    我正在尝试将 Google Trust Badge 添加到我的 magento 商店 我尝试在 Magento 网站上搜索扩展程序 但找不到 我是否需要将以下代码粘贴到产品和结账页面 还是必须对其进行更改 如果有人能引导我走向正确的方向 我
  • Magento - 检查 cms 页面

    我想通过 php 检查页面是否是 Magento 中的 cms page 我需要不同的 cms 页面面包屑 所以我尝试在一个条件下做到这一点 但我不知道如何或在哪里查看 到目前为止 这是我的 breadcrumbs phtml p some
  • 如何在 yii2 中使用两个不同的模型登录或切换身份类别?

    我想允许用户从两个不同的模型登录 配置文件 user gt identityClass gt app models User one more class here enableAutoLogin gt false authTimeout
  • 使用php将数据存储到文本文件中?

    我正在尝试将数据存储在文本文件中 例如使用 php 将数组存储到文本文件中 而不是存储到 mysql 数据库中 例如 这里是要存储在文本文件中的数据 name gt john age gt 25 location gt australia
  • MVC 模式中的验证层

    验证模型将使用的数据的最佳位置在哪里 例如 考虑登记表 我们有一些来自注册表的数据 那么验证这些数据的最佳位置在哪里 我们应该通过 if 语句或特殊的验证器类来检查每个数据 这意味着大量的编码 所以我想了解在哪里可以做到这一点 在控制器中
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • 如何在 Zend Framework 3 中注册自定义表单视图助手

    我正在将继承的 Zend Framework 2 应用程序迁移到 Zend Framework 3 并且在注册自定义表单视图助手时遇到了一些困难 这些助手在应用程序使用版本 2 时起作用 主要用于添加标签属性以实现可访问性 例如 这是一个自
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el

随机推荐

  • 蓝桥杯:单位分数

    题目描述 可以把1分解为若干个互不相同的单位分数之和 例如 1 1 2 1 3 1 9 1 18 1 1 2 1 3 1 10 1 15 1 1 3 1 5 1 7 1 9 1 11 1 15 1 35 1 45 1 231 等等 类似这样
  • SpringCloud--Eureka服务的注册与发现

    一 Eureka基础知识 1 1 什么是服务治理 SpringCloud 封装了Netflix公司开发的Eureka 模块来实现服务治理 SpringCloud抄的Netflix作业 在传统的RPC远程调用框架中 管理每个服务与服务之间依赖
  • Qt获取主窗口

    QMainWindow getMainWindow for QWidget w qApp gt topLevelWidgets if QMainWindow mainWindow dynamic cast
  • CentOS7安装docker、docker-compose

    一 docker安装 1 安装yum utils sudo yum install yum utils 2 列出当前系统中所有可用的YUM软件仓库 yum repolist 3 将Docker CE的YUM软件仓库添加到系统中 执行此命令后
  • cufflinks 介绍&使用

    一 简介 Cufflinks下主要包含cufflinks cuffmerge cuffcompare和cuffdiff等几支主要的程序 主要用于基因表达量的计算和差异表达基因的寻找 Cufflinks程序主要根据Tophat的比对结果 依托
  • 2017年高教社杯全国大学生数学建模竞赛题目--C题 颜色与物质浓度辨识

    目录 问题 第一问 数据导入 1 pd read excel 2 读取报错ImportError Missing optional dependency xlrd Install xlrd gt 1 0 0 for Excel suppor
  • sort()函数与升序、降序 C++

    1 使用sort 函数要加头文件 include
  • 嵌入式 ADC使用手册完整版 (188977万字)(附源码详细篇)

    嵌入式 ADC使用手册完整版 188977万字 附源码详细篇 1 ADC简介 2 ADC主要特征 3 ADC引脚和内部信号 4 ADC 模块框图 5 ADC校准 CLB 6 ADC 时钟 7 ADCON 开关 8 ADC规则组和注入组 9
  • 华清远见-重庆中心-框架个人总结

    框架 一套规范 实际是他人实现的一系列接口和类的集合 通入导入对应框架的jar文件 maven项目导入对应的依赖 进行适当的配置 就能使用其中的所有内容 开发者可以省去很多模板代码 如dao中的CRUD MVC模式下层与层之间的关联 只需要
  • java设计模式之适配器设计模式

    什么是适配器模式 为什么要使用适配器模式 适配器模式 属于结构型设计模式 适配俩个字来说很明显需要做兼容 俩者毫无关系 从而联系到一起去使用 拓展 举个例子 我现在需要三根充电器线 我有安卓 苹果 和电脑充电器线 本身他们之间是没有任和关系
  • 【华为OD机试】路灯照明【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 一条长l的笔直的街道上有n个路灯 若这条街的起点为0 终点为l 第i个路灯坐标为a i 每盏灯可以覆盖到的最远距离为d 为了照明需求 所有灯的灯光必须覆盖整条街 但是
  • 使用nfs实现目录共享

    准备两台虚拟机 其中一台为主端 另一台为备用端 1 安装nfs及其依赖包 两台虚拟机都要安装 yum install y nfs utils rpcbind id nobody 查看nfsnobody用户是否存在 systemctl sta
  • LeetCode第178场周赛

    1365 有多少小于当前数字的数字 给你一个数组 nums 对于其中每个元素 nums i 请你统计数组中比它小的所有数字的数目 换而言之 对于每个 nums i 你必须计算出有效的 j 的数量 其中 j 满足 j i 且 nums j l
  • 02、单链表LinkList

    LinkList h pragma once typedef int DataType typedef struct Node DataType data struct Node next ListNode LinkList 定义方式 线性
  • Java > 牛客OJ在线编程常见输入输出练习场

    C 处理输入输出 牛客OJ在线编程常见输入输出练习场 A A B 1 B A B 2 C A B 3 D A B 4 E A B 5 F A B 6 G A B 7 H 字符串排序 1 I 字符串排序 2 J 字符串排序 3 牛客OJ在线编
  • 重磅!讯飞版ChatGPT来了!

    Datawhale发布 大模型 讯飞星火 发布 科大讯飞 倒计时1天 讯飞星火认知大模型来了 相约合肥滨湖国际会展中心 更有用户现场开放体验 注册体验 海报扫码直接申请体验 一起看发布会 讯飞星火发布会交流群 一起观看发布 星星之火 可以燎
  • AI画图midjourney和playgroundai

    AI画图 1 midjourney的介绍于注册使用 2 playgroundAI画图 3 算法学习 4 参考博文 1 midjourney的介绍于注册使用 midjourney归属于discord是一个聊天室网站 生成图片就像跟人聊天一样
  • 由instanceof引发的思考

    本来上课的时候对instanceof没怎么认真听 以为记住一个不要在equals之外的地方使用就够了 但听了几个大佬的复习讲座后 觉得对instanceof还是应该再深入了解一下 起初我只知道a instanceof b是判断a是否是b及其
  • HFSS15.0安装步骤

    安装步骤 安装前先关闭杀毒软件和360卫士 注意安装路径不能有中文 安装包路径也不要有中文 试装系统位win10 1 解压压缩包HFSS150Win64 ZIP 2 以管理员身份运行安装程序 3 选择INSTALL SOFTWARE 4 这
  • CTFHub 技能树-web文件上传

    目录 无过滤 前端过滤 htaccess MIME绕过 双写后缀 文件头检查 无过滤 直接传入一句话木马 然后用蚁剑连一下 得到flag 前端过滤 function checkfilesuffix var file document get