文件上传漏洞是指系统没有限制用户上传文件的格式,或者能绕过限制上传文件,或仅仅在客户端对上传文件类型进行限制,未在服务器端进行验证,导致非法文件上传。攻击者可以上传webshell脚本,再通过菜刀等工具可以对服务器上的任意文件进行篡改,执行cmd命令,在服务器上添加管理员用户,从而获取服务器超级管理员权限。
检测方法:
1)burp中拦截上传请求,修改文件后缀,检查是否上传成功。
2)修改上传请求头content-type,检查是否上传成功;
3)伪造合法文件,进行上传操作,检查系统是否上传成功(检测后台是否对文件流头进行验证)。
注:测试时依次执行以上三步
解决方法:
1.对于上传文件的类型在服务端进行严格验证,防止上传asp,aspx,php,jsp等类型的危险脚本。
2.在服务端对请求头content-type进行校验;
3.对上传文件流头进行验证,防止恶意用户上传非法文件。
注:服务端验证时建议采用白名单,尽量不使用黑名单