一些老掉牙但是好理解的解析漏洞
解析漏洞是指服务器应用程序在解析某些静态文件或者动态文件时,会将其解析成网页脚本,从而导致网站的沦陷
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解析漏洞
上传文件名:abcde.asp;.jpg
服务器默认不解析;号后面的内容,因此abcde.asp;.jpg被当做了asp文件解析向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会进行报错有服务器信息