[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

放在开头,剩下的正常写

相关推荐
zone773930 分钟前
001:LangChain的LCEL语法学习
人工智能·后端·面试
程序员鱼皮1 小时前
微软竟然出了免费的 AI 应用开发课?!我已经学上了
人工智能·程序员·ai编程
DevnullCoffe1 小时前
基于 OpenClaw + Pangolinfo API 的 Amazon 价格监控系统:架构设计与最佳实践
人工智能·架构
Baihai_IDP1 小时前
回头看 RLHF、PPO、DPO、GRPO 与 RLVR 的发展路径
人工智能·llm·强化学习
aristotle1 小时前
Openclow安装保姆级教程
人工智能·程序员
明明如月学长1 小时前
从 Subagent 到 Team:Claude Code 把 AI 协同玩明白了
人工智能
叶落阁主1 小时前
揭秘 Happy:如何实现 AI 编程助手输出的实时同步
人工智能·claude·vibecoding
王鑫星1 小时前
Anthropic 把自己发明的协议捐了:MCP 入驻 Linux 基金会,OpenAI 竟然也签了名
人工智能
陈少波AI应用笔记1 小时前
OpenClaw安全实测:4种攻击方式与防护指南
人工智能
小锋java12341 小时前
【技术专题】嵌入模型与Chroma向量数据库 - Chroma 集合查询操作
人工智能