文件上传漏洞
low级别
首先随便上传个文本看看,发现成功了,在接着上传PHP文件看看发现也可以,可以上传一句话木马
分析页面源码发现将当前路径与固定路径和文件名拼接后并将文件移动到该路径,并没有做什么验证,所以什么文件都能上传,包括一句话木马。
可以上传下并执行命令看看效果,发现可以正常执行命令。
medium级别
上传时发现只能上传jpg和png文件
分析页面源码发现对上传类型做了白名单限制同时限制了上传的大小为100000,他用的是$_files获取包里的Content-Type内容,那这样只要拦截下包修改这个类型就可以上传了
然后抓个包改下,上传成功
也可以通过上传文件图片,然后改文件名后缀的方法上传,因为他会自动根据固定路径生成该文件名
high级别
首先分析页面源码发现他对上传文件名的后缀经行了白名单验证,还对上传的头文件进行限制必须是图像的
直接把一句话编入图片里,上传然后用文件包含漏洞的函数配合访问加载,并用专用工具链接如菜刀,冰蝎等
漏洞原理:没有对上传文件做限制,对重新存储路径没有重命名文件,白名单匹配信息太少,没有对图片上传编码做检查
方法,burp抓包改包上传一句话木马,修改编码,和文件包含联动,使用工具连接
防御:
1.进行多条件组合检查:比如文件的大小,路径,扩展名,文件类型,文件完整性
2.对上传的文件在服务器上存储时进行重命名(制定合理的命名规则)
组合检查:比如文件的大小,路径,扩展名,文件类型,文件完整性
2.对上传的文件在服务器上存储时进行重命名(制定合理的命名规则)
3.对服务器端上传文件的目录进行权限控制(比如只读),限制执行权限带来的危害