不安全的文件上传漏洞概述php
文件上传功能在web应用系统很常见,好比不少网站注册的时候须要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 好比是不是指定的类型、后缀名、大小等等,而后将其按照设计的格式进行重命名后存储在指定的目录。 若是说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,好比一句话木马,从而致使后台服务器被webshell。 web
因此,在设计文件上传功能时,必定要对传进来的文件进行严格的安全考虑。好比:
--验证文件类型、后缀名、大小;
--验证文件的上传方式;
--对文件进行必定复杂的重命名;
--不要暴露文件上传后的路径;
--等等...shell
1.尝试上传php一句话,windows
2.把php一句话后缀改成图片的后缀,好比jpg、png,继续上传并抓包安全
3.把.jpg后缀改成php后发包,上传成功服务器
1.尝试上传php一句话,函数
2.改jpg后缀,抓包,改php后缀,发包,网站
3.其实这里是应该是经过白名单的限制,根据提示来看,能够经过修改mime类型绕过的,burpsuite里面改包上传ui
此处改成image/jpegspa
发包,上传成功,
1.代码对MIME类型也进行了验证,但这都是小问题,在下面咱们发现了它经过了getimagesize()函数进行获取了图片信息,验证了上传图片是不是假图片而且限制了上传大小不能超过50kb,而且对上传后的文件名进行了重命名操做。
2.首先咱们须要修改木马文件,在文件前面添加GIF89a从而欺骗绕过getimagesize函数,也能够经过在windows的dos界面进行图片以及php合并。
3.利用本地包含漏洞include.php?filename=../../unsafeupload/uploads/2020/02/22/2455306d6b5aec7d419826309450.jpg可运行马