一些老掉牙但是好理解的解析漏洞

解析漏洞是指服务器应用程序在解析某些静态文件或者动态文件时,会将其解析成网页脚本,从而导致网站的沦陷

IIS/Nginx+php fastcgi取值错误解析漏洞(配置漏洞)

开启了cgi.fix_pathinfo如果开启以后,所执行文件不存在,会继续查找上一级文件是否存在。index.php/id/2

并且未设置security.limit_extensions该选项限制可以执行的文件类型

示例:abcde.jpg/.php

练习:

选择一个phpinfo.jpg进行上传,内容为phpinfo();,但被拦截应该是不仅对扩展名验证还对文件内容进行了验证,所以采取copy命令将一张gif和phpinfo进行构造过文件类型检测,上传成功并能成功访问图片,随后访问url/xx.gif/1.php,便能够访问到phpinfo页面

Nginx文件名逻辑漏洞(CVE-2013-4547)

影响版本:Nginx0.8.41 1.4.3/1.5.01.5.7

上传一个以空格(%20)为结尾的文件,例如abcde.jpg “

当访问abcde.jpg%20%00.php时,会将刚刚上传的“abcde.jpg “文件当做php进行执行

abcde.jpg%20%00.php

一般的php匹配正则: .php$

存在漏洞时,Nginx将abcde.jpg%20认当做了脚本文件名

练习:

首先上传一个phpinfo.php无法上传,上传一个phpinfo.gif可以上传,进行修改提交并截包,在文件名后面加一个空格成功上传,然后抓包修改在url后面添加%20%00.php并进行url解码访问文件,返回phpinfo页面

Apache解析漏洞(配置错误)

如果在Apach的conf文件中有如下配置

AddHandler application/x-httpd-php .php

则abcde.php.jpg也会被当做php去执行

如果在.htaccess中有如下配置,可以将扩展名.xxx当做php执行

AddType application/x-httpd-php xxx

练习:

在phpinfo.gif中间加一个.php,点击上传并访问,回显phpinfo.php的页面,但如果只是单纯的上传一个图片gif文件,只会是图片回显

IIS 5.x/6.0解析漏洞

  1. 上传文件名:abcde.asp;.jpg
    服务器默认不解析;号后面的内容,因此abcde.asp;.jpg被当做了asp文件解析

  2. 向xxx.asp目录下面上传abcde.jpg

服务器会将xxx.asp目录下的文件都当做asp文件解析

(环境是在FckEditor下)

练习:

上传一个内容为打印helloworld的hello.asp但并不能上传,抓包修改在文件的后面添加;.jpg发包,成功上传并访问该文件,页面成功打印出Helloworld

创建一个文件夹1.asp但里面没有任何内容,把hello.asp改为hello.jpg上传到该文件夹,访问Url/1.asp/hello.jpg,成功打印helloworld

查看服务器类型

1.F12查看响应头中的server,里面含有服务器类型的名字或者版本号(注意!可修改)

2.访问一个不存在的文件,比如IIS会进行报错有服务器信息