文件上传漏洞与解析漏洞

   文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接有效的,有时候几乎没什么技术门槛。
  1. 漏洞成因
    由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致用户可以越过其本身权限向服务器上传可执行的动态脚本文件。打个比方来说,如果你使用php作为服务器端的动态网站环境,那么你的上传功能出就一定不能让用户上传php类型的文件,否则黑客上传一个webshell,那么你的服务器上的文件就可以被任意修改了。
  2. 文件上传的危害
    上传文件是web脚本语言,服务器的web容器解释并执行了用户上传的脚本,导致恶意代码被执行
    上传文件是flash的策略文件crossdomain.xml,黑客用以控制flash在该域下的行为(其他通过类似方式控制策略文件的情况类似)
    上传的文件是病毒、木马文件、黑客用以诱骗用户或者管理员下载执行 上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈
  3. 常见的绕过方式
    前端js绕过
    判断方法:在请求未到服务器之前,页面上有一个弹窗,上面显示你的文件类型不合格。
    绕过方法:最简单的方法就是禁用浏览器的js功能以及中间人绕过攻击。
    Type绕过
    判断方法:上传文件时,提示该后缀无法上传,且burp可以抓到post包
    绕过方法:上传一个php文件,并使用burp拦截,将请求中的Content-Type修改为允许上传的类型,这样就可以通过程序验证
    黑名单绕过
    绕过方法:大小写(Php),双写绕过(pphphp),“ .空格 ”(. php)
    白名单绕过:
    绕过方法:图片马绕过(结合解析漏洞)0x00截断绕过(.%00php)
  4. 常见的防御手段:
    1、 文件上传的目录设置为不可执行,只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响,因此这一点至关重要。
    2、判断文件类型,在判断文件类型时,可以结合使用MIME
    Type、后缀检查等方式。在文件类型检查中,强烈推荐白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。
    3、使用随机数改写文件名和文件路径,文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。
    4、单独设置文件服务器的域名,由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。
  5. 服务器解析漏洞
    Apache解析漏洞:apache解析文件的规则是从右到左判断,如果后缀名不可识别,就再往左判断,如1.php.xxx就会被解析为1.php
    IIS解析漏洞:iis6.0在解析asp是,任意包含.asp字符串,那么这个目录就会按asp解析。Iis7.0/7.5对php解析有类似Nginx的解析漏洞,只要对任意文件在url后面加上字符串/任意文件名.php就会按照php去解析。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值