WAF(网页防火墙)
原理:Web应用防火墙,旨在提供保护
影响:常规Web安全测试手段会受到拦截
作用是防范网络安全入侵。
如下图,我们在网站目录下放一个简单的一句话木马,发现轻松的连接上了,这是没有WAF(防火墙的结果)不仅如此我们还可以执行ipconfig等命令。
我们下载一个免费的D盾防火墙 ,把它安装在我们的网页目录下并开启保护程序。
我们的后门已经连接不上了。
访问网站,出现D盾防护的拦截字样
WAF具体原理如下
waf分类如下
CDN(内容分发服务)
原理:内容分发服务,旨在提高访问速度
影响:隐藏真实源IP,导致对目标测试错误
实验:阿里云备案域名全局CDN加速服务(直接阿里云搜就有,这里我不做演示了)
多地ping工具:网站测速_网站速度诊断_HTTP速度测速_WEB速度测试_CDN测速_API测速_多线路速度测试_多地区速度测试
网站部署到本地的时候,本地的人访问的就会很快,但是距离你比较远的地方的人访问会很慢。
CDN就是用来解决这个问题的,并且每个地区访问的人访问的节点不一样,因为CDN服务节点的存在可以让我们从不同的地方访问一个web应用速度也很快。CDN在提供加速分发服务的同时,提供了节点我们访问的web应用的IP都会成为节点的IP,将原本的真实IP进行了隐藏。
当然我们需要进行CDN加速需要各大云厂商提供的CDN服务根据需求指向国内CDN或者全球,就是可以对于国内进行加速与在全球都进行加速。我们需要有自己的域名才可以使用云厂商的服务进行加速。自己应该也是可以配置的,但是成本往往是很高的。
具体原理如下:
具体演示效果如图我们拿百度做个演示
可以看到百度对于国内大部分地方的加速还是很可观的,上面是单次测试的截图。
下面放一下持续性ping的截图
有这张图片进行对比,那没CDN服务的网站是什么效果呢?我们从网上随便找个blog进行多地ping测试。
发现加速方面是有很明显的对比的。
配置完CDN后有一段时间的响应时间,我们需要稍加等待然后可以ping测试我们自己的域名,会发现每次的响应IP都有可能不一样 。
OSS(对象存储应用)
原理:云存储服务,旨在提高访问速度
影响:
演示:https://cloudreve.org/
Windows2022 + cloudreve + 阿里云OSS
https://github.com/cloudreve/Cloudreve/releases/download/3.7.1/cloudreve_3.7.1_windows_amd64.zip
我们使用上面这个源码进行操作,解压完成后直接点击exe文件进行运行
运行完成后如图会在本机的5212端口搭建一个网站我们直接访问,注意这个服务会和IIS冲突,我们需要先关闭IIS网站再次进行访问。 上面会给我们管理员的账号密码。于此,搭建了一个自己的OSS对象存储应用。
如果文件存储到OSS里面去了,那么我们也就没必要测试文件上传漏洞了,因为测试了没有意义,哪怕拿下了也拿不到网站本身的敏感数据。
反向代理
反向代理是一种代表服务器接收客户端请求的代理服务器。它位于服务器端,将客户端的请求分发给内部的服务器进行处理,然后将响应返回给客户端。
反向代理我们举例子一个很好理解的,就拿我们的负载均衡服务器nginx来说,当客户端访问负载均衡服务器nginx的时候nginx会把客户端流量分发给后端服务器,这种形式就可以称之为反向代理。
正向代理
正向代理是一种代表客户端发起请求的代理服务器,客户端通过正向代理访问目标服务器。它在客户端和服务器之间充当中介,将客户端的请求转发到目标服务器,并将服务器的响应返回给客户端。
通俗易懂点,我们使用校园网访问bilibili的时候,我们需要走学校的服务器去访问bilibili的服务器,或者学校的服务器会缓存bilibili的服务页面直接分发给校园网用户,这种代理访问的模式我们称之为正向代理。
具体原理如下图所示
负载均衡
这个其实是比较复杂的,具体说说我们使用nginx 、iptables、ipvs都可以做负载均衡。具体深入学习还需要各位自行探究。
iptables是根据规则走顺序表进行负载均衡的,所以相对于ipvs走哈希表进行负载均衡会慢很多,具体顺序表和哈希表原理需要各位自行学习数据结构,这里讲就太多了。nginx也可以当作负载均衡服务器,我们使用nginx当做负载均衡服务器的时候就相当于加了一台多算法的流量分配机器,可以承担前端大量流量的访问,并将流量根据算法导入后端服务器,那这个时候问题很多的小明又要问了,那为啥我访问百度的时候永远都是百度一个服务器呢?因为百度的后端可能是用了nfs网络文件系统搭建网页,可以让后端页面发出一致。挂载了nfs。
具体的nginx的算法我们列下来:
- 轮询(Round Robin):默认的负载均衡算法,按照顺序将请求分配给每一个服务器。
- 权重(Weighted Round Robin):在轮询的基础上,可以根据服务器性能或其他因素设置不同的权重,以便将更多的请求分配给高性能的服务器。
- 最少连接数(Least Connections):将请求分配给当前处理连接数最少的服务器。
- IP 哈希(IP Hash):根据客户端的 IP 地址计算哈希值,将相同 IP 的请求分配给同一台服务器,通常用于会话保持。
- URL Hash:根据请求的 URL 哈希值来分配请求,确保相同 URL 请求分配到同一台服务器上。
- Fair:基于服务器的响应时间来动态分配请求,响应时间短的服务器将会被分配更多的请求。
这些都可以进行配置。
原理:分摊到多个操作单元上进行执行,共同完成工作任务
影响:有多个服务器加载服务,测试过程中存在多个目标情况
实验:Nginx负载均衡配置
# 当然负载均衡服务器也可以直接作为后端服务器那就意味着说可能不太安全,因为我们是可以给负载均衡服务器配置域名的访问的负载均衡服务器就是访问我们的域名而且不能直接访问到后端,如果直接在负载均衡服务器上进行网站配置的话有可能会导致敏感信息泄漏。具体我就不演示了,可以在微信公众号里面找到文章,有写负载均衡具体原理和单vip,双vip的配置等等。当然,最简单的莫过于宝塔搭建了,手动搭建还是会消耗一点时间的。多vip配置就避免了单点故障,一般的大企业的服务器都会配置多vip负载均衡避免出现事故。
总而言之,搭建了负载均衡之后我们安全测试的目标肯定又多了好多好多~。