我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Web安全攻防世界06 easyupload

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Web安全攻防世界06 easyupload

问题描述

这道题我挣扎了很久,还是没有解出来,详细错误解题思路可以参考另一篇博文~(#_<-)

CTF 总结01:文件上传绕过_梅头脑_的博客-CSDN博客

↑博文很啰嗦地讲述了我用蚁剑连接一句话木马花式写法的各种失败姿势,面对文件上传一步一个坑的绝望心态,欢迎同伴围观、吐槽和指点~

———————————————————————————————————————————

大佬的WP:攻防世界WEB练习-easyupload_不知名白帽的博客-CSDN博客_easyupload

工具:Burpsuite、蚁剑;

解题基本流程:

1).user.ini文件增加图片头→上传.user.ini,burpsuite抓包修改文件类型

2)php短标签木马增加图片头→修改文件后缀→上传图片→回显图片上传地址

3)蚁剑→连接上传地址同目录的php文件(不可以直接连接非.php后缀的图片)

大佬的WP已经非常详细了,因此具体解题步骤不再搬运,本文仅为上述流程加粗部分涉及的知识点补充注脚:

1 php短标签

2 图片马的头部类型

3 .user.ini配置文件

(●'◡'●)顺便说一下,答案是 cyberpeace{ea48baaa2c8fad7d2898b7d430d0e338} ,题目会经常变更flag,所以只是短期有效哦~


思路分析

1 php短标签

php中最常见的标签为~

不过在题目上传时可能会被waf过滤掉php关键字。根据查询结果,还有四种php的标签,分别是:

仅在配置short_open_tag=on时可以使用,适合执行php语句;

即使配置short_open_tag=off时依然可以使用,相当于,适合输出php语句~

上述二者的短标签都不必闭合(即?>可以省略不写,也可以连接成功)~

  

③<% %> 据说需要配置php.ini文件中asp_tags=on(php.ini默认状态下是关闭的),但是我没有在php.ini中找到该选项...

  php7及之后官方就已经不支持的写法,呃不过我在php5的环境中也没有能够连接成功...

————————————

不重要插曲:自己是下载phpstudy搭建的环境,需要寻找php.ini文件,这个可以在phpinfo页面显示,输入下面的代码,打开服务器与浏览器~

 打开网页后发现只显示源码...

​ 经过查询原来是网站状态过期了...

 点击左上角再创建一个网站,重启apache服务就好啦~

 嗯...这个码打得不是很有灵魂...

————————————

php短标签参考1:php中的短标签 太坑人了 - dongguol - 博客园 (cnblogs.com)

php短标签参考2:无字母数字webshell总结 - 先知社区 (aliyun.com)

2 图片马的头部类型

图片马需要在.php文件前增加文件头,上传时偶尔需要配合burpsuite抓包修改content-type,常见图片搭配格式如下表所示:

文件格式php 文件头content-type
.jpg .jpe .jpegJPGGraphic Fileimage/jpeg
.pngPNG Image Fileimage/png
.gifGIF 89Aimage/gif

若题目要求上传其他格式的文件,如doc、pdf、dwg等,可以参考下面的博文:

图片马参考1:文件头_iqiqiya的博客-CSDN博客_gif文件头

图片马参考2:Content-type_瀚忄的博客-CSDN博客

3 .user.ini配置文件

.user.ini参考1:文件上传之.user.ini - NineOne_E - 博客园 (cnblogs.com)

.user.ini参考2:php - 神秘的.user.ini文件 - 技术圈 - SegmentFault 思否

.user.ini介绍:

正规的网站中,每个网站都会有php.ini文件在默默地影响网站配置,对于php.ini感兴趣的话可以浏览这个网址:PHP: php.ini 配置选项列表 - Manual

php.ini主要配置可分为以下四个模式:

 .user.ini相当于迷你版的php.ini,可以配置除了php_ini_system以外的所有设定,具有文件包含功能,适用于ctf中上传图片马的题目~

文件包含语句如下:

auto_prepend_file=test.jpgauto_append_file=test.jpg

另外注意到,因为语句auto_prepend_file与auto_append_file表达的意思是附着在文件前或文件后实行包含,所以图片马上传以后需要连接同目录的php文件,不是直接连接图片哦~

如何查询同目录的php文件:

①可以打开F12开发者工具-网络-名称中查询,如下图,可以看到请求网址存在index.php~

②传说中有大侠选择直接拔起御剑大杀四方,这个因为我暂时没有用过...目前只能羡慕前辈们潇洒的背影~有兴趣可参考:御剑下载使用教程_码啊码的博客-CSDN博客_御剑使用教程

③有时同文件指定上传路径目录中没有文件,可以试试在文件名称或上传路径中补充"../",将文件传输到上一级目录中~

.user.ini的使用局限:

可以在服务器启用CGI/FastCGI SAPI时使用~默认名称为.user.ini,默认上传时间为300秒,所以如果php.ini没有修改这个配置,那也就是在上传.user.ini 一段时间以后才能进行操作~PHP: .user.ini 文件 - Manual

所以啊,在上传或者干掉.user.ini之后,发现配置没有立刻被刷新,还是不能上传文件的话,也许静静等待300秒再操作就会出现奇迹呢~(●'◡'●)


再次啰嗦:对于文件上传有兴趣的话可以点击这里参考下面的链接,现在主要是在记录踩坑失败的经历,后期也会慢慢补充完善的~

CTF 总结01:文件上传绕过_蚁剑返回数据为空_梅头脑_的博客-CSDN博客

博文写得模糊或者有误之处,欢迎留言讨论与批评~

码字不易,若有所帮助,可以点赞支持一下博主嘛?感谢~(●'◡'●)

来源地址:https://blog.csdn.net/weixin_42789937/article/details/128356918

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Web安全攻防世界06 easyupload

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录