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

BUU27 [SUCTF 2019]CheckIn1

题目是上传文件

直接上传muma.jpg还不成功:

  好吧,那做一个图片马上去,换马以后发现还是不行,呃啊啊啊啊

干啥啥不行,搜wp第一名,哎

新面孔:exif_imagetype 函数在 PHP 中用于检测一个文件是否为有效的图像文件,并返回该图像的类型。如果函数返回 false 或者不是预期的图像类型,通常意味着文件不是图像文件或者文件损坏。

exif_imagetype()函数会读取图像的第一个字节,并检查其签名,如果发现了恰当的签名则会返回相应的常量,否则返回false ,我们可以在一句话木马前面加上一个GIF图片文件头前缀GIF89a进行绕过,让函数误认为我们是合法的后缀

所以需要在一句话木马前面加上GIF89a(GIF图片文件头前缀,让这个函数误以为我们是合法后缀)png:塒NG  |   .gif:GIF89a  |  .jpg:塒NG

好歹是绕过了,接下来就该传.htaccess了

.htaccess类型还是不对,不要紧,在他前面加个GIF89a不就好了吗 

 居然连不上,考!

再次看wp

正常想到的是.htaccess,但是这个服务器是nginx,而.htaccess是针对apache的

所以引入一个php目录配置文件 .user.ini

它比.htaccess用的更广,不管是nginx/apache/IIS,只要是在使用 CGI/FastCGI 模式的服务器上都可以使用.user.ini

在 PHP 环境里,.user.ini 文件是一种用户自定义的配置文件,它能够为特定目录及其子目录下的 PHP 脚本提供个性化的配置选项。

auto_prepend_file 是 PHP 的一个配置指令,其作用是指定一个文件,在执行每个 PHP 脚本之前,PHP 解释器会自动将这个指定文件的内容包含进来并执行。也就是说,当设置 auto_prepend_file = muma.jpg 后,PHP 会尝试在执行任何 PHP 脚本之前,先包含并执行 muma.jpg 文件的内容。

内容:GIF89a

          auto_prepend_file=muma.jpg

我们指定一个文件(如a.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),类似于在index.php中插入一句:require(./a.jpg);

这两个设置的区别只是在于auto_prepend_file是在文件前插入;auto_append_file在文件最后插入(当文件调用的有exit()时该设置无效)

新建了个 .user.ini 文件,但怎么写也写不进去,抓包内容都是空的

那就直接在包里面写,反正Content-Type也要改

 该有的都有了,开始连蚁剑: 

注意这里用蚁剑连接不是连 muma.jpg,而是index.php

 连接成功,拿到flag

其他不用蚁剑手动POST的技巧:

uploads/c47b21fcf8f0bc8b3920541abd8024fd/index.php?cmd=var_dump(scandir("/"));

// 扫描当前目录下的文件,并打印出来

uploads/c47b21fcf8f0bc8b3920541abd8024fd/index.php?cmd=system('cat /flag');

uploads/c47b21fcf8f0bc8b3920541abd8024fd/index.php?cmd=var_dump(file_get_contents("/flag"));


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

相关文章:

  • 《深度揭秘LDA:开启人工智能降维与分类优化的大门》
  • [ESP32:Vscode+PlatformIO]添加第三方库 开源库 与Arduino导入第三方库的区别
  • Google地图瓦片爬虫——进阶版
  • mongodb 使用内存过大分析
  • OpenAI 实战进阶教程 - 第四节: 结合 Web 服务:构建 Flask API 网关
  • 寒假2.5
  • Android开发经验谈:2021年Android网络编程总结篇,经典好文_android网络编程心得
  • 【redis】redis集群时的槽Slot是什么?
  • 深度学习:解码智能的“数字炼金术”
  • Java面试题及答案整理( 2022最新版,持续更新)
  • 链式前向星复习图论
  • 【GitHub】相关工具下载及使用
  • 高阶C语言|和结构体与位段的邂逅之旅
  • 109,【1】攻防世界 web 题目名称-文件包含
  • 1Panel应用推荐:WordPress开源博客软件和内容管理系统
  • 设计模式与技术组件
  • Office/WPS接入DS等多个AI工具,开启办公新模式!
  • 32.日常算法
  • javaEE初阶————多线程初阶(3)
  • 实现一个页面来维护定时任务,并在状态更改时实时启动或停止Job
  • PHP 面向对象编程详解
  • 使用PyCharm进行Django项目开发环境搭建
  • 【重新认识C语言----结构体篇】
  • 机器学习数学基础:16.方程组
  • C# 控制台接入DeepSeek
  • 使用ES5和ES6求函数参数的和、解析URL Params为对象