目录
1、漏洞介绍
文件上传漏洞是web系统中的一种漏洞形式,指的是用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
2、漏洞危害
上传漏洞与SQL注入或 XSS相比 , 其风险更大。
上传的文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。
上传的文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为。
上传的文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。
上传的文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。
攻击者可以直接上传一个webshell到服务器上 完全控制系统或致使系统瘫痪。
3、漏洞原理
程序员在开发文件上传功能时,并未考虑文件格式后缀的合法性校验或者是否只在前端通过js进行后缀检验。这时攻击者可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如(jsp、asp、php、aspx文件后缀)到服务器上,从而访问这些恶意脚本中包含的恶意代码,进行动态解析最终达到执行恶意代码的效果,进一步影响服务器安全。
4、利用前提
应有文件上传功能;
对上传文件类型检测有漏洞;
检测文件类型的逻辑有漏洞。
5、文件上传绕过
5.1upload-labs第三关
通过源码得知,禁止.asp、.aspx、.php、.jsp类型进行上传。本关可以通过上传其他文件扩展名进行绕过,实现文件上传。
5.2.upload-labs第五关
通过源码得知,并未对其大小进行限制,且是由于是黑名单,只限制了不可以上传的,那么的我们可以对php后缀进行大小写变形,例如:PHP、Php、pHp等。