验证方面↓
一.白名单验证
定义只允许上传的文件后缀(jpg、png、bmp、gif、doc)
其他范围的文件后缀,均不允许上传。
解决办法:
1.利用解析漏洞 配合搭建平台
2.前端白名单可以直接修改。
3.截断(在某些环境可以突破)
二.黑名单验证
定义不允许上传的文件后缀(asp、aspx、asa、cer、.htaccess、ashx)
除此之外的文件后缀,均可以上传。
突破方法↓
1.直接上传未在名单内后缀.
2.配合一些特殊解析后缀(.htaccess、ashx)
【上传文件验证机制】
文件头验证
突破办法↓
给上传包内增加目标允许上传的图片的文件头
文件类型验证
文件内容(有无敏感函数或语句)
解决办法↓
过狗一句话 或者一些不易被查杀的后门
文件大小(大于或小于指定的大小不允许上传)
上传适中大小的文件(图片)
上传文件路径验证(检测来路)
重命名处理
1.截断
2.抓包寻找其重命名处理函数
3.包内找时间内容修改发包看有无区别。改变了则是文件名取包内的时间,无区别则是重命名时间取服务器本地时间。
【闲聊】
单纯的后缀验证你指的可能是白名单。
1.配合搭建平台的解析漏洞突破了(考虑重命名无法突破时的路径是否在包内定义)
2.前端的话可以尝试审查元素修改允许后缀。
3.黑名单过滤的很严的情况下可以尝试,.htaccess或ashx 前提是目标环境是否配置这些支持环境。