文件上传

本文最后更新于 2025年4月6日 晚上

文件上传

介绍

文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全
问题,耐于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件
类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言
版本,语言函数,中间件,引用的第三方编辑器等存在缺陷地方配合利用。另外文件上传
也有多个存储逻辑,不同的文件存储方案也会给攻击者带来不一样的挑战!

前后端验证

前端js验证

1.可直接在前端页面修改后缀限制

2.可抓包修改后缀

3.可以上传.htaccess文件 内容为

1
2
3
4
5
AddType application/x-httpd-php .png
AddType application/x-httpd-php .jpg
AddType application/x-httpd-php .gif
...
让他成功解析

后端验证

1.抓包改变content-type 为想要的文件类型(MIME)

2.修改后门文件为图片文件头来绕过(文件头检测)

1
2
3
4
5
6
7
8
JPEG:FFD8FF
PNG:89504e47
GIF:474946338
HTML:68746d6c3e
ZIP:504b0304
RAR:52617221
pdf:255044462d312e
xls or doc:d0cf11e0

黑名单

检测上传文件后缀是不是在黑名单里,是就gg,不在就通过

1.双写绕过(没递归检测,只检测一次)

2.大小写绕过(大小写不敏感-windows)

白名单

1.大小写绕过

2.某些逻辑缺陷

函数缺陷

move_uploaded_file()函数,如果上传的文件名可控,可修改成xxx.php/.来绕过,上传会变成xxx.php/


文件上传
http://example.com/2025/04/06/文件上传/
作者
清风
发布于
2025年4月6日
许可协议