WEB安全--文件上传漏洞--白名单绕过

一、MIME类型(Content-Type)绕过

原理:在我们不能绕过白名单后缀限制时,如果后端检测的是文件类型(数据包中的Content-Type字段),那我们可以利用合法类型替换

示例:在上传,php后缀文件时抓包,将数据包中Content-Type:后对应的值修改为合法文件类型。

.php 
Content-type: application/x-httpd-php

.png
Content-type: image/png


//上传.php文件时对Content-type修改:

application/x-httpd-php ==> image/png

MIME:常见 MIME 类型列表 - HTTP | MDN

二、文件幻数检测绕过(魔术字绕过)

原理:某些系统仅检测文件开头的 魔术字(Magic Number),如 GIF89a,攻击者可以在恶意文件前添加 GIF89a 伪装成 GIF 图片。

示例:常用幻数(16进制编辑器修改开头)

.jpg	FF D8 FF E0 00 10 4A 46 49 46
.gif	47 49 46 38 39 61
.png	89 50 4E 47

三、00截断绕过(PHP < 5.3
php.ini配置文件中 magic_quotes_gpc 为 off)

原理:

1、文件名截断:系统在对文件名的读取时,如果遇到0x00(null字节)就会认为读取已结束,从而忽略后面的内容。

2、文件内容截断:在文件内容中插入null字节,可能会导致文件内容在null字节处被截断,从而隐藏后面的恶意代码。

示例:

shell.php\x00.gif ==> shell.php

四、图片马(文件包含漏洞利用)

原理:将payload或webshell写入到图片中,后端有文件包含函数include()、readfile()等会识别到图片内容中的php代码并执行。

猜你喜欢

转载自blog.csdn.net/m0_74800552/article/details/146865405
今日推荐