1概述
不安全的文件上传漏洞概述
文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。 如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器被webshell。
所以,在设计文件上传功能时,一定要对传进来的文件进行严格的安全考虑。比如:
–验证文件类型、后缀名、大小;
–验证文件的上传方式;
–对文件进行一定复杂的重命名;
–不要暴露文件上传后的路径;
–等等…
2client check(客户端)
发现在前端进行了上传文件类型的检查,但前端检查很容易绕过,删除掉检查事件,再点击上传,便可成功上次任意类型文件。
3MIMe type(服务器端)
3.1查看源代码,发现服务器端对类型进行了检查
3.2进行png上传时
content-Type显示了文件类型
3.3上传任意文件,修改content-Type为image/png
修改后,发现可上传任意文件了。
4getimagesize
查看图片第一行代码 发现 图片头都一致