目录
Web中间件
一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关的服务的软件,在web业务中我们也把他称为Web服务器,Web容器
常见的Web中间件:
IIS Apache Nginx WebLogic Tomcat JBoss
Php中间件漏洞
Apache:
文件解析漏洞:
Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。
如: shell.php.jpg Apache不认识.jpg后缀,就会将按照从右到左的顺序,将其当作.php解析
如果运维开启了AddHandler application/x-httpd-php .php
甚至可以只要含有php就可以,没必要是最后一个后缀
换行解析漏洞:
httpd 2.4.0~2.4.29版本,解析时会将.php\x0A当成.php文件解析
burp中换行是%0d%0a
shell.php\0a ---> shell.php
Nginx:
文件解析漏洞:
由于php中的选项cgi.fix_pathinfo的默认值被开启,所以当nginx看到.php结尾的文件就交给了php处理:
当我们传入shell.png/shell.php时,nginx将其当作php解析,但没有找到shell.php文件,向上级目录修
正,然后就会将shell.png当作php解析,其中shell.png为图片马
shell.png/shell.php --->shell.png 当作php解析
文件名逻辑漏洞:
nginx版本:Nginx 0.8.41~1.4.3 Nginx 1.5.0~1.5.7(未设置cgi.fix_pathinfo情况下)
漏洞源码:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT /var/www/html;
}
可以这样理解:当传入.php文件时,进入这个Location板块,有fastcgi当作php解析;
而该漏洞则是 当传入shell.gif[0x20][0x00].php时,符合正则\*.php$ ,进入location板块,而传入后
nginx却认为它是shell.gif[0x20],被传给fastcgi当作.php处理
shell.gif[0x20][0x00].php--->shell.gif[0x20]
利用,上传shell.png[0x20],然后抓包修改,添加[0x00].php(Hex)
IIS漏洞
IIS文件解析漏洞:
一.版本:IIS5.x/6.0
除了含有特殊符号的文件路径时出现逻辑错误
1. /shell.asp/shell.png
目录解析,/shell.asp下的所有文件都会被当作asp执行
2. /shell.asp;.png
; 后面的不会被当作后缀解析
3. IIS6.x除了会将扩展名为.asp的文件解析为asp之外,还默认会将扩展名为.asa,.cdx,.cer解析为asp,
二.版本:IIS7.0/IIS 7.5
和nginx文件解析漏洞相似
PUT文件上传漏洞:
版本:IIS6.0
条件:开启WebDAV(允许用户协作编辑和管理远程web服务器上的文件)和写权限
1.利用OPTION请求查看到服务端允许PUT请求方式
2.利用PUT请求写入含有一句话木马的文件,文件名后缀为.txt等,如shell.txt
3.利用COPY或MOVE请求将文件名后缀改为.asp shell.asp;.txt
4.连接木马
短文件名漏洞:
IIS的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400。
远程代码执行:
在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行构造的时候,引发栈溢出,从而导致远程代码执行。
JAVA中间件漏洞
Tomcat:
PUT文件上传漏洞
版本:Tomcat 7.0.0 – 7.0.81
条件:readonly设置为了false
利用shell.jsp/ 绕过
弱口令+后台getshell漏洞
Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。
获取权限:
基础认证特征:
请求的HTTP头字段会包含Authorization字段:
Authorization: Basic YWRtaW46MTIzNDU2
base64加密后的admin:123456
burpsuite如何对其爆破:
payload type选择Custom iterator(自定义迭代器)
设置自定义payload
在Payload Processing中点击add添加相应的加密base64
在最后的Payload Encoding中取消urlencode加密特殊字符
WebLogic:
SSRF
利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。
管理控制台未授权RCE
CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。
任意文件上传
Web Service Test Page 在“生产模式”下默认不开启,所以该漏洞有一定限制。利用该漏洞,可以上传任意jsp文件,进而获取服务器权限。