tomcat
Posted 明月清风mypf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat相关的知识,希望对你有一定的参考价值。
4.tomcat篇
tomcat是一个开源而且免费的jsp服务器,属于轻量级应用服务器。它可以实现JavaWeb程序的装载,是
配置JSP(Java Server Page)和JAVA系统必备的一款环境。
目录介绍
|-- webapp # 站点根目录
|-- META-INF # META-INF 目录
| -- MANIFEST.MF # 配置清单文件 |-- WEB-INF # WEB-INF 目录 | |-- classes # class文件目录 | | |-- *.class # 程序需要的 class 文件 | |
-- *.xml # 程序需要的 xml 文件
| |-- lib # 库文件夹
| | -- *.jar # 程序需要的 jar 包 |
-- web.xml # Web应用程序的部署描述文件
|--
|--
webapp:工程发布文件夹。其实每个 war 包都可以视为 webapp 的压缩包。
META-INF:META-INF 目录用于存放工程自身相关的一些信息,元文件信息,通常由开发工具,环境自动生
成。
WEB-INF:Java web应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
/WEB-INF/classes:存放程序所需要的所有 Java class 文件。
/WEB-INF/lib:存放程序所需要的所有 jar 文件。
/WEB-INF/web.xml:web 应用的部署配置文件。它是工程中最重要的配置文件,它描述了 servlet 和组
成应用的其它组件,以及应用初始化参数、安全管理约束等。
4.1 Tomcat 远程代码执行漏洞(CVE-2017-12615)
1.漏洞描述
当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数
由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代
码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。
2.漏洞原理
当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产
生,(需要允许put请求)
CVE-2017-12615影响范围: Apache Tomcat 7.0.0 - 7.0.79 Apache Tomcat/8.5.19
文件下载 Releases · rebeyond/Behinder · GitHub
3.漏洞复现
拉取靶场 启动
支持三种上传绕过方式 默认使用put 加文件名是失败的 需要绕过
4.修复
1.设置 readonly未true
PUT /shell.jsp%20
PUT /shell.jsp::$DATA
PUT /shell.jsp/
4.3 tomcat弱口令&war远程部署
1.漏洞原理
在tomcat8环境下默认进入后台的密码为tomcat/tomcat,未修改造成未授权即可进入后台,或者管理
员把密码设置成弱口令,
使用工具对其进行穷举。得到密码后,也可以进行后台上传恶意代码控制服务器。
2.漏洞复现
输入账号和密码 tomcat
制作后门 打包zip改名成war即可
找到上传,选择waf上传
http://192.168.0.159:36497/manager/html
上传会自动解压 用客户端进行连接即可获取
3.漏洞修复
1.设置强口令
conf/tomcat-users.xml
2.删除manger文件
http://192.168.0.159:36497/shell/shell.jsp
4.2 tomcat 远程代码执行(CVE-2019-0232)
1.漏洞描述
Apache Tomcat是美国阿帕奇(Apache)软件基金会的一款轻量级Web应用服务器。该程序实现了对
Servlet和JavaServer Page(JSP)的支持。
4月11日,Apache官方发布通告称将在最新版本中修复一个远程代码执行漏洞(CVE-2019-0232),由
于JRE将命令行参数传递给Windows的方式存在错误,会导致CGI Servlet受到远程执行代码的攻击。
触发该漏洞需要同时满足以下条件:
- 系统为Windows
- 启用了CGI Servlet(默认为关闭)
- 启用了enableCmdLineArguments(Tomcat 9.0.及官方未来发布版本默认为关闭)
2.影响范围
3.漏洞复现
搭建tomcat后修改web.xml
Tomcat的CGI_Servlet组件默认是关闭的,在 conf/web.xml 中找到注释的CGIServlet部分,去掉注释,
并配置enableCmdLineArguments和executable,如下:
Apache Tomcat 9.0.0.M1 to 9.0.17
Apache Tomcat 8.5.0 to 8.5.39
Apache Tomcat 7.0.0 to 7.0.93
cgi
org.apache.catalina.servlets.CGIServlet
debug
0
cgiPathPrefix
WEB-INF/cgi-bin
executable
5
cgi
/cgi-bin/
然后修改在conf/context.xml中的添加privileged="true"语句
在webappsROOTWEB-INF下创建一个cgi-bin文件夹,并在文件夹内创建一个bat文件写入
完成后访问 http://192.168.0.136:8080/cgi-bin/hello.bat?&C%3A\\Windows\\System32\\ne
t%20user
4.漏洞修复
受影响版本的用户应该应用下列其中一项缓解。升级到:
以上是关于tomcat的主要内容,如果未能解决你的问题,请参考以下文章
jsp页面被tomcat引擎运行的时候组装成java片段,但是这些java片段怎么没有main方法作为程序的入口啊?