什么是文件上传漏洞
File Upload Vulnerabilies 文件上传漏洞是指服务器允许用户上传文件名、类型、内容、大小等没有经过充分校验的文件。对文件的这些属性如果不加验证,可能会导致一个简单的图片上传功能被用来上传任意有潜在危险的文件。甚至是上传服务器端脚本文件从而进行远程代码执行。
有时,上传文件本身就会导致危险。其他攻击者可以在文件中嵌入一个HTTP跟踪请求,让服务器来执行。
文件上传漏洞是怎样产生的?
由于文件漏洞显而易见的危险性,很少有网站不对用户上传的文件做任何限制。更多的情况是,开发者实现了他们认为的既没有潜在危险又不容易绕过的验证。
比如说,开发者或许设置了危险文件的黑名单,但是没有考虑在检查文件扩展名的时候没有考虑到解析差异。与任何黑名单一样,它也很容易意外地忽略可能仍然危险的较为模糊的文件类型。
Exploiting unrestricted file uploads to deploy a web shell 利用无限制的文件上传来部署web shell
如果网站运行你上传服务器脚本,那就很容易在这个服务器上部署你自己的webshell。
web shell是一个恶意脚本,可以让攻击者通过发送http请求到相应的节点上执行任意命令。
如果成功上传了web shell,就等于对服务器拥有了完全控制权。可以读写任意文件,获取敏感数据,甚至用这个服务器攻击内部设施或其他网络上的服务器。
给了2个web shell恶意脚本的例子。
1.通过该脚本可以读取任意文件内容
2.通过该脚本可以执行任意命令