中间件漏洞总结

一、IIS

1.iis6.0解析漏洞

该版本默认将*.asp;.jpg此类格式的文件名,当成asp解析,服务器默认;后面的内容不解析,相当于截断,例如上传asp木马,就可以用xx.asp;.jpg来绕过;iis除了会将asp解析成脚本执行文件之外,还会将 cer cdx asa扩展名解析成asp
防御方法:
1.禁止上传和创建此类畸形文件
2.图片存放目录设置为禁止脚本执行

2.iis6 PUT漏洞

IIS Server在web中开启了webDAV 配置了可以写入的权限,造成了任意文件上传。
防御方法:
1.关闭webDAV
2.关闭写入权限

3.iis7.x解析漏洞

iis7.x版本在Fast-CGI运行模式下,在任意文件,例如:a.jpg/png后面加上/.php,会将.jpg/png解析为php文件。

CGI:外部应用程序与WEB服务器之间的接口标准
FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化


防御方法:
配置 cgi fix_pathinfo(php inil中)为0并重启php-cgi程序

4.iis短文件漏洞

IIS的短文件名机制,可以暴力破解文件名。访问构造某个存在的短文件,会返回404,访问构造某个不存在的短文件,会返回400。使用payload验证目标是否存在短文件漏洞,显示404时,说明存在短文件。

http://upload.moonteam.com/~1/a.aspx

注:* 可以匹配n个字符, n可以为0
防御方法:
1、升级.net framework
2、修改注册表键值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem修改NtfsDisable8dot3NameCreation为1。修改完成后,需要重启系统生效。
命令行关闭 fsutil behavior set disable8dot3

二、Apache

1.未知拓展名解析漏洞

apache默认一个文件可以有多个以点切割的后缀,当最右的后缀无法识别时,就继续向左识别,直到识别到合法后缀才开始解析,如xxx.php.qqq,qqq无法识别,就继续解析,到php时能够识别,就解析为php文件,

2.换行解析漏洞

apache换行解析漏洞(CVE-2017-15715)

其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
防御方法:
将上传的文件重命名为为时间戳+随机数+.jpg的格式并禁用上传文件目录执行

3.apache ssi 远程命令执行漏洞

当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用 语法执行命令。

使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。

上传一个shell.shtml 内容

上传成功

然后去访问就可以得到结果了

三、Tomcat中间件

1.Tomcat弱口令&war远程部署

Tomcat存在后台管理,账号密码设置在conf/tomcat-users.xml

可能存在的安全问题:弱口令或爆破(爆破采用数据包base64传递认证)
这里先把我们的shell.jsp在本地打包成zip,然后重命名为war,之后上传war,它会自动解压,从而getshell

四、nginx中间件

IS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞

在默认Fast-CGI开启状况下,黑阔上传一个名字为wooyun.jpg,内容为

');?>

的文件,然后访问wooyun.jpg/.php,在这个目录下就会生成一句话木马 shell.php

或者直接访问wooyun.jpg/.php,就会被以PHP方式解析
原理:
nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在 Nginx配置文件中

通过正则匹配设置 SCRIPT_FILENAME。

当访可http://192.1681.103/ phpinfo. jpg/1.php这个URL时

$fastcgi_script_name会被设置为 “phpinfo.jpg/1.php”,然后构造成

SCRIPT_FILENAME传递给 PHP CGI,如果PHP中开启了 fix_pathing这个选项

PHP会认为 SCRIPT_FILENAME是 phpinfo.jpg,而1.php是 PATH_INFO,所以就

会将 phpinfo.jpg作为PHP文件来解析了。
防御方法:
方案一:修改php.ini,设置cgi.fix_pathinfo = 0;然后重启php-cgi。此修改会影响到使用PATH_INFO伪静态的应用,

方案二:在nginx的配置文件添加如下内容后重启:1992。

    该匹配会影响类似http://www.domain.com/software/5.0/test.php(5.0为目录),http://www.domain.com/goto.php/phpwind 的URL访问。

方案三:对于存储图片的location{…},或虚拟主机server{…},只允许纯静态访问,不配置PHP访问。

五、JBoss中间件

1.JMX Console未授权访问Getshell

此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导致攻击者可以进⼊到jmx控制台,并在其中执⾏任何功能
防御方法:
1.升级jboss
2.关闭jmx-console和web-console,提高安全性

2.JBoss 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)

该漏洞出现在/invoker/readonly中 ,服务器将用户post请求内容进行反序列化用工具来验证,在验证之前我们可以访问路径进行初步判断url://invoker/readonly,看服务器返回情况如下则说明漏洞存在
修复:升级新版本,删除 http-invoker.sar 组件。

六、weblogic中间件

1.弱口令

原理:在weblogic搭建好之后没有修改进入后台的密码导致弱口令登录获得webshell
访问http://192.168.1.10:7001/console
这里注意一下不能使用bp抓包去爆破,错误密码5次之后就会自动锁定,这里使用weblogic/Oracle@123登陆后台

2.WebLogic 未授权访问漏洞(CVE-2018-2894)

在ws-testpage-impl.jar/com.oracle.webservices.testclient.ws.res.WebserviceResource 类中存在importWsTestConfig方法
跟进 RSdataHelper的convertFormDataMultiPart方法,接下来调用convertFormDataMultiPart方法,文件直接由字段 文件名拼接而成,没有任何限制。

ws-testpage-impl.jar!/com/oracle/webservices/testclient/ws/util/RSDataHelper.class:164

你可能感兴趣的:(java,安全,开发语言)