文中主要讲解Tomcat漏洞,通过文中的漏洞步骤了解中间件漏洞原理;文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。
环境启动:
使用vulhub自带环境进行测试
漏洞描述:
当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。
漏洞原理:
当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产生,(需要允许put请求)
影响版本:
Apache Tomcat 7.0.0 - 7.0.79 Apache Tomcat/8.5.19
漏洞复现:
此漏洞支持三种上传绕过方式,默认使用PUT加文件名是失败的,需要绕过
PUT /shell.jsp%20
PUT /shell.jsp::$DATA
PUT /shell.jsp/
使用Burp进行抓包,并更改模式为PUT。 回显201,表示上传成功。 使用冰蝎进行getshell
修复方法:
** 设置readonly 为 true**
|