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

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.lryc.cn/news/532826.html

相关文章:

  • unity学习30:Audio Source, Audio clip 音效和音乐
  • 【Qt 常用控件】输入类控件1(QLineEdit和QTextEdit 输入框)
  • openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能
  • 深入解析:如何利用 Java 爬虫按关键字搜索淘宝商品
  • STM32上部署AI的两个实用软件——Nanoedge AI Studio和STM32Cube AI
  • C++ Primer 成员访问运算符
  • 芯科科技的BG22L和BG24L带来应用优化的超低功耗蓝牙®连接
  • java后端开发面试常问
  • ‌双非硕士的抉择:自学嵌入式硬件开发还是深入Linux C/C++走软开?
  • Windows系统使用Git教程详解
  • Linux firewalld开启日志审计功能(2)
  • 【声音转文字CapsWriter】声音随时转化为文字,CapsWriter提高工作效率
  • 深入理解小波变换:信号处理的强大工具
  • 人机交互系统实验三 多通道用户界面
  • Filter -> MaskFilter遮罩滤镜详解
  • RK3568使用QT操作LED灯
  • python学opencv|读取图像(五十七)使用cv2.bilateralFilter()函数实现图像像素双边滤波处理
  • 为何实现大语言模型的高效推理以及充分释放 AI 芯片的计算能力对于企业级落地应用来说,被认为具备显著的研究价值与重要意义?
  • Android 约束布局ConstraintLayout整体链式打包居中显示
  • 在C#中,Array,List,ArrayList,Dictionary,Hashtable,SortList,Stack的区别
  • 微服务知识——微服务架构的演进过程
  • Chrome 浏览器:互联网时代的浏览利器
  • 深入浅出 NRM:加速你的 npm 包管理之旅
  • Linux——基础命令1
  • nuxt3中使用useFetch请求刷新不返回数据或返回html结构问题解决-完整nuxt3useFetchtch请求封装
  • Kubernetes 中 BGP 与二层网络的较量:究竟孰轻孰重?
  • C中静态库和动态库的使用
  • Debian 安装 Nextcloud 使用 MariaDB 数据库 + Caddy + PHP-FPM
  • 【FPGA】 MIPS 12条整数指令 【3】
  • Mac 部署Ollama + OpenWebUI完全指南