目录
一、IIS解析漏洞
IIS6.X
目录解析
漏洞原理
在iis6.x中,.asp文件夹中的任意文件都会被当做asp文件去执行。
漏洞复现
在IIS的网站根目录新建一个1.asp的文件夹

在1.asp中新建一个1.jpg文件,内容为<%=now()%>

在外部浏览器访问Windows2003的IIS网站中的1.jpg发现asp代码被被执行

在根目录创建1.jpg,内容与1.asp文件夹中的内容一样,再去访问,发现无法解析。


到这里,说明1.asp中的文件被当作asp文件执行,说明存在漏洞,至此结束!
畸形文件解析&其他文件扩展名
漏洞原理
在IIS 6处理文件解析时,分号可以起到截断的效果。也就是说 shel.asp;.jpg会被服务器看成是shel.asp。另外IIS6.0默认的可执行文件除了asp还包含 asa\cer\cdx
漏洞复现
我们在网站根目录新建文件2.asa;jpg和2.asa,内容皆为<%=now()%>

接下来我们在外部浏览器访问一下,查看是否被解析。


发现都被解析,说明;起到了截断的作用,且asa文件也被解析,说明漏洞存在,至此结束!
IIS7.X
漏洞原理
在默认Fast-CGI开启状况下,在一个文件路径/xx.jpg在IIS7.0和IS7.5版本下也存在解析漏洞,后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。
前提条件
1.php.ini里的cgi.fix_pathinfo=1 开启
2.lS7在Fast-CGl运行模式下
漏洞复现
在目录添加文件并访问,文件内容如下

在浏览器中访问。

发现无法访问,我们在后面拼接.php再次访问

使用蚁剑尝试连接。

连接成功,发现解析了其中的PHP代码,但后缀不是php说明存在解析漏洞,至此结束!
二、Nginx解析漏洞
nginx_parsing
漏洞原理
这个解析漏洞其实是PHP CGI的漏洞,在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认是开启的,当URL中有不存在的文件,PHP就会向前递归解析。在一个文件/xx.jpg后面加上/.php会将/xx.jpg/xx·php 解析为 php 文件。
观察页面,上传文件

我们上传268.php这个文件,文件内容如下

提交文件

获取GetShell
访问所给的文件地址

访问到文件,我们在后面加上.php,让其错误解析,从而获取GetShell。

使用蚁剑尝试连接。

连接成功,发现解析了其中的PHP代码,但后缀不是php说明存在解析漏洞,至此结束!
CVE-2013-4547
漏洞原理
此漏洞为文件名逻辑漏洞,该漏洞在上传图片时,修改其16进制编码可使其绕过策略,导致解析为php。当Nginx得到一个用户请求时,首先对ur进行解析,进行正则匹配,如果匹配到以.php后缀结尾的文件名,会将请求的PHP文件交给PHP-CGI去解析。
观察页面,上传文件

上传文件256.jpg,根据原理,我们配合burpsuit来使用。
获取GetShell

我们在filename中将文件名后面加上 .php,再在Hex中将第二个20改为00,上传文件即可。


放行数据包即可,观察页面回显。

发现文件上传成功,接下来我们去访问即可。

发现可以访问到文件,但是需要注意,这个文件大概率是我们第一次上传的文件,因为我们第二次上传的文件并不是这个文件名,我们在后面加上 .php,但是需要注意,我们刚刚在burpsuit中对文件名进行过修改,所以我们访问时也需要修改文件名。

首先将我们的数据还原,将%20改回空格,再对Hex中的第二个20改为00,然后放行。


放行,查看回显。

发现有回显,我们成功连到了这个木马,我们尝试使用蚁剑连接一下。

发现无法连接,这是因为我们必须要修改文件名的Hex的第二个20改为00,但是我们无法在蚁剑中修改,就和我们无法在浏览器中直接访问一样,接下来我们修改我们的木马,让它去生成木马,修改如下。

我们再次上传,尝试连接,其他的步骤与上述无异。我们上传147.jpg,并重复之前的操作,147文件内容如下:




上述的文件会帮我们生成一个shell.php,我们去访问一下。

访问成功,我们用蚁剑连接一下。

连接成功,发现解析了其中的PHP代码,但后缀不是php说明存在解析漏洞,至此结束!
三、Apache解析漏洞
apache_parsing
漏洞原理
Apache HTTPD支持⼀个文件拥有多个后缀,并为不同后缀执行不同的指令
观察页面,上传文件

根据原理,上传文件shell.php.jpg这是一个jpg文件。

上传成功,我们去访问一下。
获取GetShell

访问成功,由于我们文件还是刚刚的那个,所以会生成一个shell.php我们去访问并用蚁剑连接。

连接成功,说明解析了我们的php代码,但是文件后缀名不是php而是jpg,说明存在漏洞,至此结束!
CVE-2017-15715
漏洞原理
Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\xOA将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略
观察页面,上传文件

这里我们上传文件889.php,文件内容如下


获取GetShell
发现不允许提交,我们依旧抓包来试一下。

观察抓到的包,我们来看一下,这一次他给我们指定了文件名,所以这次我们应该在evil.php后面进行更改,我们尝试更改,并在Hex中将第20改为00。

尝试上传并访问。

发现回显警告了,我们不理他,直接去访问一下,看看有没有上传成功。它并没有给我们路径,证明尝试直接将文件名拼接在后面尝试一下。并且使用burpsuit将其改为00试一下。

放行,查看回显。

发现回显错误,要注意的是这里和前面不一样,因为连GIF89a都没有出现,就说明我们的木马并没有生效,所以不用去访问shell.php,没有用的。证明这种方式不行。我们换一个。这次我们将20变为0a来尝试一下。步骤与上述无异。


这一次我们就看到了GIF89a,说明我们这一次访问到了。要注意在浏览器后面拼接%0a,接下来我们访问生成的shell.php并且使用蚁剑连接。

连接成功,发现解析了其中的PHP代码,但后缀不是php说明存在解析漏洞,至此结束!