非法文件上传漏洞技术

1 上传技术基础

1.1 JS验证绕过类

  如何判断为本地验证呢? 一般情况下速度较快的返回信息认为是本地验证,但有时候需要根据抓包以及跟踪上传代码来分析是否为本地验证。

  •  删除验证方法绕过上传
  •  修改过滤白名单绕过上传

  在客户端的检测中,通常使用JS对上传图片检测,包括文件大小文件拓展名文件类型等。在绕过本地上传限制时,可以使用Firebug对客户端的脚本进行编辑。

1.2 MIME类型检测绕过类

  MIME作用:使用客户端软件,Web服务器使用MIME来说明发送数据的种类,Web客户端使用MIME来说明希望接收到的数据类型

  在检测绕过过程中,可以使用BurpSuite抓包,拦截并更改相应提交数据,后述几种绕过方法类似。

1.3 文件扩展名检测绕过类

  PHP 语言除了可以解析以 php 为后缀的文件,还可以解析 php2php3php4php5这些后缀的文件,同时不同的服务器所支持的文件类型也不尽相同

1.4 文件内容检测绕过类

  对于文件内容检测,可以使用BurpSuite修改提交的数据包,可通过在末尾添加几个空格后粘贴“一句话”,然后修改相应的尾缀为 php 。注,上述的“一句话”为一句话木马相应的代码。

1.5 空字符截断目录路径检测类

  对于空字符截断目录路径检测类,可以使用BurpSuite修改上传保存的文件名,并且通过Hex进行空字符截断。00是一个截断字符的16进制,截断字符后面的都会被截断,也就是被忽略,所以对于uploading/1.php .jpg 就变成了uploadimg/1.php,从而实现了上传php文件的目的

2 解析导致的上传漏洞

2.1 IIS 6.0 目录路径解析漏洞

  在IIS 6.0目录路径检测解析中,文件名字为 ".asp/xxx.jpg" 或者 ".asa/xxx.jpg",同样会被IIS当作 ASP 文件来解析并执行。

  说明:首先请求 /aaa.asp/xxx.jpg,从头部查找 " . ",获得了 .asp/xxx.jpg,查找 " / ",如果有这内存截断,所以 /aaa.asp/xxx.jpg 会当作 /aaa.asp 来进行解析。

2.2 IIS 6.0 站上的解析缺陷

  在IIS 6.0目录路径检测解析,文件的名字为 ".php;xxx.jpg",也同样会被IIS当成 PHP 文件类解析并执行。

  说明:首先请求 /aaa.php;xxx.jpg,从头部查找 " . ",获得了 .php;xxx.jpg,查找 " ; ",如果有则 内存截断,所以 /aaa.php;xxx.jpg 会被当作 /aaa.php 来进行解析。

2.3 Apache站上的解析缺陷

  Apache是从后面开始检查后缀,按最后的一个合法后缀执行。在进行绕过解析过程中,将需要上传的木马文件后缀名改为 .7z.cab.zip .bmp 等允许的上传类型都可以上传成功。

2.4 htaccess文件上传解析漏洞

  .htaccess文件中定义了将上传的文件后缀名为 .jpg 格式的文件以 php 格式来解析文件。.htaccess 是apache服务器中的一个配置文件,不是上传的文件的黑名单之内,所以该类型文件可以上传成功。

AddType    application/x-httpd-php    .jpg

3 上传技术之编辑器

3.1 FCK编辑器

  • 查看FCKeditor版本信息
   http://www.xxx.com/fck242/_samples/default.html

   http://www.xxx.com/fck242/_whatsnew.html
  • FCKeditor上传地址
   http://www.xxx.com/fck242/editor/filemanager/browser/default/connectors/test.html

   http://www.xxx.com/fck242/editor/filemanager/upload/test.html

   http://www.xxx.com/fck266/editor/filemaneger/connectors/test.html

   http://www.xxx.com/fck266/editor/filemaneger/uploadtest.html
  • FCKeditor漏洞利用:首先上传图片看编辑器是否可利用,然后结合前面的解析漏洞上传木马

4 防护

  • 客户端检测,使用JS对上传图片检测,包括文件大小文件扩展名文件类型
  • 服务器端检测,对文件大小文件路径文件扩展名文件类型文件内容检测对文件重命名
  • 其他限制,服务器端上传目录设置不可执行权限

学习笔记:http://ichunqiu.com/topics/78

posted @ 2015-08-08 16:46  0vv1  阅读(2602)  评论(0编辑  收藏  举报