解析漏洞与文件上传漏洞—一对好兄弟

前言

目前在很多小型网站上,广泛的存在着文件上传漏洞,在对其进行渗透时,通过sql注入/弱口令爆破进入后台+webshell文件上传也许就是你拿下它最快的方式。

但是仅靠文件上传往往不行,有了解析漏洞的帮助效果可能会更好。

我对解析漏洞与上传漏洞的理解是:

解析漏洞就是让web容器把我们上传的文件当成脚本解析的过程;

文件上传漏洞就是通过各种方式使得我们的含有恶意代码的文件上传到服务器的过程。

解析漏洞

iis6.0的解析漏洞

iis6.0上有两个典型的解析漏洞:

1.在.asp/.asa结尾的文件夹里面的文件均按照asp文件进行解释。
2.iis在解析文件名时遇到分号停止。

例子:

./dir.asp/evil_code.txt //txt文件将被按照asp文件进行解析
evil_code.asp;1.jpg //该文件将被按照asp文件进行解析

apache1.x 2.x中的解析漏洞

Apache在解析文件时,当遇到不认识的扩展名时,将会从后向前解析,直到碰到认识的为止,如果都不认识,将会暴露源码。

apache认识哪些扩展名,可以在apache安装目录下的“conf/mime.types”中查看。

例子:

1.php.rar //如果apache不认识rar文件,该文件将被按照php文件解释

PHP CGI解析漏洞(畸形解析漏洞)

常出现的版本:iis 7.0/7.5 Nginx<8.03

在php配置文件中有一个cgi.fi: x_pathinfo,当其开启时:

访问 www.victim.com/evil.jpg/1.php
1.php为不存在的文件,php将会向前解析,从而将evil.jpg(可以是图片一句话)按照php解释。

截断攻击

它最常出现在asp程序中,在php,jsp中也可能存在相关问题。

它名字虽然没有解析两个字,但是把它归到解析漏洞是因为截断攻击使得web容器只解析文件名空字符前面的部分,属于解析漏洞的范畴。

evil.php空格1.jpg
抓包后在16进制下将文件名空格处的20改为00,会使得部分web容器将文件解析为1.php。

文件上传漏洞

既然前面已经说了文件上传漏洞就是通过各种方式使得我们的含有恶意代码的文件上传到服务器的过程,那么文件上传漏洞的主题就是绕过服务器或客户端检测的各种方式。这里简单写一些,还有更多方法被众多安全爱好者分享在他们的博客中。

客户端验证

有时候虽然对上传的文件进行了限制,但是这个限制是在客户端进行的,这种限制形同虚设,不多说了。

更改文件后缀名

之前说了那么多解析漏洞,就是为了配合更改文件后缀名使用的。

服务端验证往往对文件的后缀名和数据包中的Content-Type部分进行验证,假如将webshell代码文件后缀改为其它被服务器认为是安全的后缀,再通过解析漏洞让其按照脚本文件进行解析,就达到了最终的目的。

文本编辑器的漏洞

很多网站为了节省开发成本,直接使用现成的文本编辑器,如fckeditor,这种编辑器经常在网上被爆出漏洞,可以对这些漏洞进行利用。

Leave a Reply

Your email address will not be published. Required fields are marked *