渗透测试之中间件安全

文章目录

  • Apache
  • Nginx
  • IIS
    • 短文件名猜解漏洞
      • 漏洞成因
      • 漏洞利用
    • 文件名解析漏洞
      • 利用方式
      • 利用条件
      • 漏洞修复
    • 远程代码执行漏洞
      • MS-15-034
      • CVE-2017-7269
        • 漏洞成因
        • 利用方式
        • 利用条件:
        • 漏洞修复
    • 提权漏洞
      • MS-16-016
        • 漏洞成因
        • 利用方式
        • 利用条件
        • 修复
  • Tomcat
  • JBoss
  • Weblogic
    • 中间件特征
    • 漏洞简表
  • WebSphere
  • CGI
  • 总结
  • 参考

渗透测试过程中信息收集阶段我们经常会对中间件的版本、类型等信息进行收集,通过分析这些信息我们可以寻找对应于此中间件的历史漏洞并加以利用。以下两篇文章已经对中间件常见漏洞进行了总结,对于这两篇文章中已经介绍的漏洞本文就不再赘述,本文目的在于维护一张中间件漏洞表以便于查询,补充文章中未提到的细节信息以及更新下述两文未提到的或者新出现的漏洞。
Web中间件常见漏洞总结
部分中间件漏洞总结

Apache

漏洞简表:

漏洞 编号 版本 可利用度 利用场景
文件解析 配置漏洞 全版本 Getshell
目录遍历 配置漏洞 全版本 了解目录结构
文件解析 CVE-2017-15715 Apache2.4.0-2.4.29 Getshell

Nginx

当前版本:nginx 1.15.9 [2019.3.16]
漏洞简表:

漏洞 编号 版本 可利用度 利用场景
CRLF 配置漏洞 全版本 会话固定,过浏览器Filter的XSS
目录遍历 配置漏洞 全版本 了解目录结构
目录穿越 配置漏洞 全版本 穿越目录
头部覆盖 配置漏洞 全版本 XSS
文件名解析漏洞 配置漏洞 全版本 Getshell
文件名解析漏洞 CVE-2013-4547 0.8.41 ~ 1.4.3;1.5.0 ~ 1.5.7 Getshell,权限绕过
读取缓存 CVE-2017-7529 0.5.6 ~1.13.2 数据泄露

以上漏洞均可以通过vulhub进行实践。

IIS

IIS与操作系统对照表:

IIS默认版本 Windows系统
IIS 1.0 Windows NT Server 3.51
IIS 2.0 Windows NT Server 4.0
IIS 3.0 Windows NT 4.0 SP3
IIS 4.0 Windows Server 4.0 SP3 + Option Pack
IIS 5.0 Windows 2000
IIS 5.1 Windows XP Professional,Windows XP Media Center
IIS 6.0 Windows Server 2003,Windows XP Professional X64
IIS 7.0 Windows Vista(Home Premium,Business,Enterprise,Ultimate),Windows Server 2008
IIS 7.5 Windows 7,Windows Server 2008 R2
IIS 8.0 Windows 8,Windows Server 2012
IIS 8.5 Windows 8.1,Windows Server 2012 R2
IIS 10.0 Windows 10,Windows Server 2016

漏洞简表:

漏洞 编号 补丁编号 版本 操作系统版本 可利用度 利用场景
Put漏洞 配置漏洞 6.0 Webshell上传
短文件名猜解 配置漏洞 1.0-10.0(全版本) 敏感文件下载,猜后台,猜敏感文件
文件名解析漏洞 配置漏洞 5.x,6.0,7,7.5 文件上传绕过
提权漏洞 MS16-016(CVE-2016-0051) Vista SP2,Server 2008 x86 & x64,Server 2008 R2 x64,Windows 7 x86 & x64,Windows 8.1 x86 & x64提权,Windows Server 2012,Windows Server 2012 R2,Windows RT 8.1,Windows 10蓝屏 提权
远程命令执行 MS15-034(CVE-2015-1635) DOS,内存泄露
远程命令执行 CVE-2017-7269 6.0 Windows Server 2003 R2 Getshell

IIS深入浅出之短文件漏洞知多少

短文件名猜解漏洞

漏洞成因

此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(〜)波浪号引起的。为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3 短文件名。

漏洞利用

在以下两种情况下才会生成短文件名:

  • 文件名长度大于9位
  • 包含空格等特殊字符的文件名

文件名按一下规则生成短文件名:

  • 文件名短文件名的命名规则是仅取源文件的前六到四个字符其余字符用~1代替
  • 如果存在同名文件(文件名及后缀名前三位相同)则通过增加波浪符后面数字来解决重名问题。
  • 所有小些字母均转换为大写
  • 在存在多个’.'时按最后一个为识别后缀名,后缀名长度大于3个字符则截断

版本不同利用方式上也有些许差异

  • IIS 6.0
    Get请求方式
成功 失败
404 400
  • IIS 7.5
    Options请求方法会返回不同的信息
成功 失败
Error Code 0x00000000 Error Code 0x80070002
  • IIS 8.0 8.5 10.0
    OPTIONS及TRACE请求方法访问时会返回不同信息
成功 失败
404 200

文件名解析漏洞

利用方式

IIS 6.0 在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞。这一漏洞有两种完全不同的利用方式:

  • /test.asp/test.jpg
    IIS会建立test.asp文件夹并将其下面的文件均作为asp文件解析
  • test.asp;.jpg
    由于特殊字符‘;’的存在会将其识别为.asp文件执行

IIS7/ 7.5 文件解析漏洞利用方式为test.jpg/.php。漏洞的产生原因与Nginx配置错误导致的文件解析漏洞相同。

利用条件

  • php.ini里cgi.fix_pathinfo=1(默认为1)
  • 在”Handler Mapping”中取消勾选Invoke handler only if requests is mapped to file or folder。
    FastCGI

漏洞修复

1)对新建目录文件名进行过滤,不允许新建包含‘.’的文件
2)取消网站后台新建目录的功能,不允许新建目录
3)限制上传的脚本执行权限,不允许执行脚本
4)过滤.asp/xm.jpg,通过ISApi组件过滤

远程代码执行漏洞

MS-15-034

CVE-2017-7269

漏洞成因

栈溢出

利用方式

PoC

利用条件:

开启WebDAV服务(因为是处理PROPFIND指令时未检查URL长度造成的)

漏洞修复

  • 关闭 WebDAV 服务
  • 使用相关防护设备

提权漏洞

MS-16-016

漏洞成因

这个漏洞是由于Windows中的WebDAV未正确处理WebDAV客户端发送的信息导致的。

利用方式

PoC
交互式shell

利用条件

开启WebDAV服务

修复

  • 关闭 WebDAV 服务
  • 使用相关防护设备

Tomcat

漏洞 编号 版本 可利用度 利用场景
任意文件上传 CVE-2017-12615 7.0.0 - 7.0.81 Getshell
代码泄漏 CVE-2017-12616 7.0.0 - 7.0.80 (Windows) 读取源码
后台War文件部署 不算漏洞 全版本 Getshell

Tomcat官方漏洞修复查询页面

JBoss

漏洞 编号 版本 可利用度 利用场景
反序列化 CVE-2017-7504 < JBoss 4.x 代码执行,Getshell
反序列化 CVE-2017-12149 JBoss 5.x/6.x 代码执行,Getshell
反序列化 SSV-89723 命令执行,Getshell
后台War文件部署 不算漏洞 全版本 Getshell

利用工具下载
靶场及漏洞介绍

Weblogic

中间件特征

  • 默认报错页面
    渗透测试之中间件安全_第1张图片
  • 默认头部参数
    渗透测试之中间件安全_第2张图片
  • 默认端口:7001
  • 默认后台路径:/console
  • 加密密码存放路径:user_projects\domains\base_domain\config\config.xml
  • 秘钥存放路径:user_projects\domains\base_domain\security\SerializedSystemIni.dat

漏洞简表

漏洞 编号 版本 可利用度 利用场景
反射型XSS CVE-2014-4241 10.0.2,10.3.6 盗取Cookie
反射型XSS CVE-2014-4242 10.0.2,10.3.6,12.1.1,12.1.2.0.0 盗取Cookie
ssrf CVE-2014-4210 10.0.2,10.3.6 结合内网redis可Getshell,内网探测
XMLDecoder反序列化 CVE-2017-3506 命令执行,Getshell
XMLDecoder反序列化 CVE-2017-10271 10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0 命令执行,Getshell
Java反序列化 CVE-2015-4852 命令执行,Getshell
Java反序列化 CVE-2016-0638 命令执行,Getshell
Java反序列化 CVE-2016-3510 命令执行,Getshell
Java反序列化 CVE-2017-3248 命令执行,Getshell
Java反序列化 CVE-2018-2628 10.3.6.0,12.2.1.2,12.2.1.3,12.1.3.0 命令执行,Getshell
Java反序列化 CVE-2018-2893 命令执行,Getshell
任意文件上传 CVE-2018-2894 10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3 Getshell
任意文件上传 CVE-2019-2618 10.3.6.0,12.1.3.0,12.2.1.3 Getshell
后台War文件部署 不算漏洞 全版本 Getshell

vuln Weblogic
默认密码查询
WebLogic SSRF 及漏洞修复
WebLogic反序列化漏洞CVE-2018-2628复现与EXP构造
WebLogic两处任意文件上传漏洞动态分析(CVE-2018-2894)
Weblogic从入门到放弃

WebSphere

CGI

总结

Java平台的中间间反序列化漏洞多一点,另外的则文件解析漏洞多一点。

参考

Web中间件常见漏洞总结
vulhub
Weblogic漏洞——从入门到放弃

你可能感兴趣的:(渗透测试)