Web安全Web安全安全性测试

上传漏洞

2018-05-14  本文已影响64人  _return_
文件上传简介:

为了让用户将文件上传到网站,就像是给危机服务器的恶意用户打开了另一扇门。即便如此,在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助于提高业务效率。企业支持门户,给用户各企业员工有效地共享文件。允许用户上传图片,视频,头像和许多其他类型的文件。向用户提供的功能越多,Web应用受到攻击的风险和机会就越大,这种功能会被恶意用户利用,获得到一个特定网站的权限,或危及服务器的可能性是非常高的。

WebShell

就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)。

WebShell后门隐蔽较性高,可以轻松穿越防火墙,访问WebShell时不会留下系统日志,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员不容易发现入侵痕迹。攻击者可以将WebShell隐藏在正常文件中并修改文件时间增强隐蔽性,也可以采用一些函数对WebShell进行编码或者拼接以规避检测。除此之外,通过一句话木马的小马来提交功能更强大的大马可以更容易通过应用本身的检测。<?php eval($_POST[a]); ?>就是一个最常见最原始的小马,以此为基础也涌现了很多变种,如<script language="php">eval($_POST[a]);</script>等。

存在漏洞与webshell
效果
造成恶意上传的原因
一、客户端检测

程序员使用JavaScript来拒绝非法文件上传。
绕过方法:
FireBug插件:将用于检验文件扩展名的onsubmit事件删除。
中间人攻击:使用Burp Suite。首先把木马扩展名改为一张正常图片的扩展名,比如JPG扩展名,在上传时使用Burp Suite拦截上传数据,再将其中的扩展名JPG修改为PHP,就可以绕过客户端验证。(可能还需要相应地修改Content-Length)
任何客户端验证都是不安全的。客户端验证是防止用户输入错误,减少服务器开销,而服务器端验证才可以真正防御攻击者。

二、服务器端检测

2.1 白名单与黑名单验证
黑名单过滤方法:定义不允许上传的文件扩展名
黑名单的绕过方法:1.攻击者可以从黑名单中找到Web开发人员忽略的扩展名,如:cer
2.对文件的后缀名进行大小写转换,比如黑名单中有php,可以将文件的后缀改为pHp,仅限windows平台
3.在windows系统下,如果文件名以“.”或者空格作为结尾,系统会自动删除“.”与空格,利用此特性也可以绕过黑名单验证。(asp.或asp_)
白名单过滤方法:定义允许上传的文件扩展名
白名单的绕过方法:结合Web容器的解析漏洞

2.2 MIME验证
php中通过$_FILE['file']['type']来检验
绕过方法:可以在Burp Suite中更改Content-Type的内容为image/jpeg

以上,仅仅是简单的原理描述,至于实战,一无所知。具体的操作,实战的工具,步骤,遇上再更。

就别提问了,反正不会......

上一篇 下一篇

猜你喜欢

热点阅读