漏洞介绍
在我们浏览网页时,文件上传是非常常见的,比如我们会上传头像、附件、视频等文件,文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,比如上传头像的时候,按道理用户只能上传图片类型的文件,但是如果代码没有限制文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。
漏洞演示
下面我们在DVWA环境下进行演示,如下图红框中要求我们选择一张图片去上传,正常用户会选择后缀为“.jpg”、“png”等类型的图片上传,但如果后台代码没有对文件类型进行限制,我们选择了一个后缀为“”.php的“webshell.php”文件,它是一个包含了恶意代码文件,点击“upload”,提示“succesfully uploaded!”,上传成功!攻击者会通过访问此文件,进而控制我们的网站服务器。