hw面试常见中间件漏洞
apache漏洞
未知扩展名解析漏洞
漏洞原理:Apache对文件名后缀的识别是从后往前进行的,当遇到不认识的后缀时,继续往前,直到识别
影响版本:使用module模式与php结合的所有版本,apache存在未知扩展名解析漏洞;使用fastcig模式与php结合的所有版本,apache不存在此漏洞
module模式,php作为apache的一个模块来运行
php的fpm模式,亦即php作为单独服务来受理apache的请求
利用此漏洞文件名必须携带一个".php"否则会被当做text文档处理
换行解析漏洞CVE-2017-15715
原理:对于正则表达式符\(。\)可以匹配字符串结尾的换行符'\n'或'\r'
影响版本:Apache 2.4.0~2.4.29
上传时在文件后缀加入0x0a(换行)绕过黑名单
nginx漏洞
解析漏洞
把".php"结尾的文件交给fastcgi处理,对于任意文件名,在后面添加任意字符.php就可以将其解析
例:上传sell.jpg 然后访问shell.jpg/xx.php就会把shell.jpg解析成php
IIS解析漏洞
6.x解析漏洞
目录解析漏洞:建立文件夹的名称中以.asp或.asa等作为后缀的文件夹,其目录内任何扩展名的文件都被IIS当作asp可执行文件去解析并执行.
文件解析漏洞:
- 在IIS6.0下,分号后面的内容不被解析,如xx.asp;.jpg将会当作xx.asp去解析执行
- .asa .cdx .cer也会被当作asp进行解析
7.x解析漏洞
在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件
weblogic:端口7001
war后门文件部署
后台地址:ip:7001/console/login/LoginForm.jsp
原理:
管理员配置疏忽导致后台存在弱口令或默认账号密码(weblogic/Orcle@123),对于上传文件校验不严格
利用:
直接将shell压缩成压缩包,然后修改后缀名为war,选择部署选择war包然后一直下一步,点击保存后上传完成,然后就可以访问webshell,访问目录ip:7001/war包名字/shell名字
修复
- 对默认账户密码进行修改
- 采用强密码策略
- 对上传文件进行校验
反序列化漏洞
原理:
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令
ssrf漏洞:
影响版本10.0.2 – 10.3.6
该漏洞可以发送任意HTTP请求,进而攻击内网中redis等脆弱组件。redis存在未授权访问漏洞(在访问redis数据库时,无需提供用户名及密码,且具备root权限读写文件)。
tomcat:端口8080
后台地址:http://[Tomcat服务器IP地址]:8080/manager/html
put任意文件上传
影响版本:
7.0.0-7.0.81
原理
Tomcat配置文件/conf/web.xml 配置了可写(readonly=false),导致可以使用PUT方法上传任意文件,攻击者就可以构建恶意代码进行上传然后获取webshell(不允许上传jsp后缀文件,可以使用斜杠等方法绕过)
修复
- 升级tomcat版本
- 避免启用readonly功能,将false修改问true
远程代码执行
原理
由于JRE将命令行参数传递给Windows的方式存在错误,会导致CGI Servlet受到远程执行代码的攻击
利用条件
- 系统为Windows
- 启用了CGI Servlet(默认为关闭)
- 启用了enableCmdLineArguments
弱口令&&后台getshell
默认密码tomcat/tomcat
支持在后台部署war文件,可以直接将webshell部署到web目录下,若后台管理页面存在弱口令
jboss:端口8080
反序列化
原理:
存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了攻击者可以在服务器上执行任意代码。
漏洞验证
访问/invoker/readonly,返回50f'z0,说明此页面存在反序列化漏洞
未授权访问漏洞
浏览JBoss的部署管理页面信息,无需输入管理员账号面,可以直接部署上传木马
防御
- 对JMX控制页面访问添加访问验证
- 进行JMX console安全配置