0x01 漏洞复现
本次复现的漏洞如题,是一个任意文件文件上传漏洞,但是此处的上传不需要页面有一个上传功能的界面,而是通过PUT方法来进行上传的。
在tomcat下的conf文件夹中有一个web.xml,在其中找到default servlet的配置项,添加如下的配置
重点是readonly的那一项,因为其他的都是默认的,只有那个是自己添加的。
我们来看一下readonly这个选项是用来做什么的吧
也是在这个web.xml文件中,已经注释的地方说明了默认情况下readonly是true,并且如果是true的话,那么PUT和DELETE方法是被拒绝的,因此如果手动将readonly选项开启为false,那么就能够通过PUT方法上传文件了。
但是,当我们想要上传一个jsp木马的时候却发现报了一个405的错误
查阅资料发现,原来default servlet只能处理静态文件,而处理jsp文件是jspservlet,但是只有defaultservlet有PUT上传逻辑,解决的办法是通过构造特殊的后缀名来进行绕过,从而上传jsp木马。
经过验证,可以在文件名后面添加斜杠 / 来进行绕过。
访问上传的木马,成功执行命令!