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

[GHCTF 2025]UPUPUP【.htaccess绕过 XBM/WBMP】

 题目:

这种文件上传可以先尝试一下让他报错,发现是apache的服务器,就想到.htaccess

上传了 .htaccess 和 .jpg 都没啥用,这时候应该想到后端采用了getimagesize和exif_imagetype限制

在文件上传时,有时候会用 exif_imagetype 函数判断一个图像的类型,读取一个图像的第一个字节并检查其签名,所以我们图片马的开头要加上 GIF89a,但是如果我们在. htaccess 文件中也加入 GIF89a 的话会导致. htaccess 文件无法生效,所以我们要用别的方法。 

这时候有两种绕过方法:

第一种 

写入XBM绕过

XBM格式:

XBM格式,也就是X BitMap,是一种基于文本的图像格式(纯文本图像格式),用于存储黑白像素(没有颜色,只有0和1表示是否填充)。它的本质是一个C语言头文件(.h文件),内部用代码定义了一个二维数组,描述图像的每个像素点。

由于XBM是文本格式,可以写入.htaccess文件中,可以通过这个绕过exif_imagetype()

在.htaccess开头加上: 

#define width 1
#define height 1

#define 定义常量,规定了这个图像的长和宽都是多少  

其实完整的XBM长这样:

绕过原理:

PHP的 exif_imagetype() 函数通过读取文件头部的魔术字节(Magic Bytes)判断文件类型。这里XBM文件的头部是文本形式的 #define 语句,符合标准的XBM格式,因此会被识别为 IMAGETYPE_XBM(PHP常量值为 16)。

第二种 

WBMP文件格式,利用

\x00\x00\x8a\x39\x8a\x39

或者 

\x00\x00\x85\x85

放在开头,剩下的正常写


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

相关文章:

  • 面试题(1)MySQL中的锁
  • UVC摄像头命令推流,推到rv1126里面去
  • Java基础入门流程控制全解析:分支、循环与随机数实战
  • 智慧社区管控大屏,人性化和科技感该如何平衡?
  • [算法] 判断是否为字符串重排(simple, 面试)
  • 我的创作纪念日:730天的技术写作之旅
  • PyTorch中torch.nn、torchsummary和torch.nn.functional库作用详解
  • ubuntu22查看系统版本
  • 使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图
  • Mysql高频八股——SQL语句的执行过程
  • 通过 **DeepSeek** 辅助生成接口测试用例
  • 基于Vue 3的智能支付二维码弹窗组件设计与实现
  • STC51 中断允许寄存器 IE
  • DOM与CSS:网页设计的核心力量
  • maven wrapper的使用
  • 嵌入式学习L6网络编程D5UDP编程
  • 【系统架构设计师】性能评估
  • Cadence 学习笔记(1)
  • 【ES6】ES6中的类
  • QT5.9.2项目复制到新电脑上后“error: LNK2019: 无法解析的外部符号”错误