[i=s] 本帖最后由 yuri 于 2025-7-31 05:32 编辑 [/i]
一、内容概括
- 解析漏洞;
- 文件上传漏洞防御。
二、重要知识和细节
·解析漏洞
- 换行解析(Apache):文件上传的时候在请求头的后缀名加上换行符,以此绕过校验的黑名单,但是解析的时候会截断换行符及其后面的内容,文件依旧可以当成
.php文件执行;
- 多后缀解析(Nginx):文件上传的是带木马的图片,但访问的时候可以通过访问
/xxx.jpg/.php使得图片被当成.php文件执行。因为当请求一个具有多个扩展名的文件file.jpg.php时,Nginx可能会根据最后一个扩展名来处理,所以即使该文件最初是作为图片file.jpg上传的,依旧会把图片解析成.php文件执行。
·文件上传漏洞防御
- 在网站工具里面禁止目录执行;
- 解码还原和二次渲染;
- 分站存储;
- OSS对象云存储;
- 强制重命名,使用随机哈希命名,避免用户访问控制文件名。
对于上传的文件,验证程序要做严格验证,使用服务器端校验,而不能仅用前端javascript验证。
* 1.建议严格限制上传文件类型和上传文件名及后缀。
* 2.检查文件头和文件内容,对上传文件目录的运行权限进行严格限制。
* 3.及时排查、删除服务器木马文件。
* 4.上传文件的存储目录禁用执行权限
* 5.文件的后缀白名单,注意0x00截断攻击
* 6.不能有本地文件包含漏洞
* 7.及时修复web上的代码
* 8.升级web server
* 9.后端验证:采用服务端验证模式
* 10.后缀验证:基于白名单,黑名单过滤
* 11.MIME验证:基于上传自带类型艰检测
* 12.内容检测:文件头,完整性检测
* 13.自带函数过滤
* 14.WAF防护软件:宝塔、云盾等