Web中间件常见漏洞整理

本篇主要方便自己以后查找作为记录

web服务器

广义:提供广义web服务的软件或主机

狭义:提供w3服务的软件或主机,即Web服务器软件或装有Web服务器软件的计算机。例如:IIS、Apache、nginx、Lighttpd。Web服务器可以处理 HTTP 协议,响应针对静态页面或图片的请求,进行页面跳转,或者把动态请求委托其它程序(它的扩展、某种语言的解释引擎、Web容器)。

web容器

  • 容器:作为操作系统和应用程序之间的桥梁,给处于其中的应用程序组件提供一个环境,使应用程序直接跟容器中的环境变量交互,不必关注其它系统问题。例如:tomcat(拥有JSP容器,servlet容器),Jboss(拥有EJB容器)。

  • web容器:处理http的容器,例如tomcat(拥有JSP容器,servlet容器),IIS(拥有ASP容器)。

应用服务器

  • 中间件
    为一种或多种应用程序提供容器,同时为应用程序提供相关服务。

  • 应用服务器
    用于被其他应用服务器或web服务器调用的中间件。例如Tomcat,WebLogic,WebSphere,Jboss

IIS,Tomcat,WebLogic,WebSphere 既是应用服务器,又拥有web服务器的功能。

IIS

IIS是微软的一款web服务器,其配置不当容易产生webdav漏洞。webdav本身是iis的一项扩展功能,开启后可以使用除了get、post以外的一些请求类型,比如put等。但如果配置不当,就会导致文件上传漏洞。

PUT漏洞
  • 成因:
    IIS Server 在 Web 服务扩展中开启了 WebDAV ,配置了可以写入的权限,造成任意文件上传。
  • 版本:
    IIS6.0
短文件名猜解

IIS 短文件名漏洞

远程代码执行
  • 成因
    IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行构造的时候,引发栈溢出,从而导致远程代码执行。
  • 版本:
    IIS6.0
解析漏洞

解析漏洞

Apache

目录遍历
  • 成因
    配置错误导致目录遍历
  • 修复
    修改 apache 配置文件httpd.conf
    找到Options+Indexes+FollowSymLinks +ExecCGI并修改成 Options-Indexes+FollowSymLinks +ExecCGI并保存
解析漏洞

解析漏洞

Weblogic

weblogic是一个基于JavaEE构架的中间件,安装完weblogic默认会监听7001端口。

反序列化漏洞
  • 成因
    Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,然而就在这一转一变得过程中,程序员的过滤不严格,就可以导致恶意构造的代码的实现。
SSRF
  • 简介:
    Weblogic 中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件
任意文件上传
  • 成因
    通过访问config.do配置页面,先更改Work Home工作目录,用有效的已部署的Web应用目录替换默认的存储JKS Keystores文件的目录,之后使用”添加Keystore设置”的功能,可上传恶意的JSP脚本文件。
war后门文件部署
  • 成因
    由于WebLogic后台存在弱口令,可直接登陆后台上传包含后门的war包。

Jboss

JBoss这是一个基于JavaEE的应用服务器,与tomcat类似的是jboss也有远程部署平台,但不需要登陆。漏洞利用过程与tomcat类似。

war后门文件部署
  • 成因
    jBoss后台管理页面存在弱口令,通过爆破获得账号密码。登陆后台上传包含后门的war包。
反序列化
  • 成因
    该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker组件中的 ReadOnlyAccessFilter过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞
  • 版本:
    5.x6.x版本的JBOSSAS

Tomcat

tomcat是apache的一个中间件软件,其可以提供jsp或者php的解析服务,为了方便远程管理与部署,安装完tomcat以后默认会有一个管理页面,管理员只需要远程上传一个WAR格式的文件,便可以将内容发布到网站,这一功能方便了管理员的同时也给黑客打开了方便之门,除此之外,tomcat还有一些样本页面,如果处理不当也会导致安全问题。

远程代码执行
  • 成因
    Tomcat 运行在Windows 主机上,且启用了 HTTP PUT 请求方法,可通过构造的攻击请求向服务器上传包含任意代码的 JSP 文件,造成任意代码执行。
  • 版本:
    Apache Tomcat 7.0.0 – 7.0.81
    管理后台爆破
    一般tomcat后台登录口不做任何安全处理,可以无限次尝试登入。
war后门文件部署
  • 成因
    Tomcat 支持在后台部署war文件,可以直接将webshell部署到web目录下。
    若后台管理页面存在弱口令,则可以通过爆破获取密码。

Nginx

目录遍历
  • 成因
    Nginx的目录遍历与Apache一样,属于配置方面的问题,错误的配置可到导致目录遍历与源码泄露
CRLF注入
  • 简介
    CRLF时“回车+换行”(\r\n)的简称。
    HTTP Header与HTTP Body时用两个CRLF分隔的,浏览器根据两个CRLF来取出HTTP内容并显示出来。
    通过控制HTTP消息头中的字符,注入一些恶意的换行,就能注入一些会话cookie或者html代码,由于Nginx配置不正确,导致注入的代码会被执行。
  • 漏洞复现
    payload:/%0d%0a%0d%0a<img src=1 onerror=alert(/xss/)>
    在请求后面加上 payload 可触发弹框
目录穿越
  • 成因
    Nginx反向代理,静态文件存储在/home/下,而访问时需要在url中输入files,配置文件中/files没有用/闭合,导致可以穿越至上层目录。
解析漏洞

解析漏洞

其他

FastCGI未授权访问、任意命令执行
  • 成因
    服务端使用fastcgi协议并对外网开放9000端口,可以构造fastcgi协议包内容,实现未授权访问服务端.php文件以及执行任意命令。
PHPCGI远程代码执行