网站四大件

操作系统-中间件-数据库-网站源码

常规web搭建

1.购买服务器和域名

2.在服务器上搭建中间件

3.下载并上传web程序源码

4.添加网站并绑定域名

常规搭建模式

子域名模式

端口模式

目录模式

其他搭建网站:

集成软件搭建(宝塔,phpstudy,这种如果软件出问题了,网站就出问题了。)

docker搭建

分配站搭建(大域名分配给用户,比如网校系统,慕课和超星的网上学习就是这样)

源码:

开源 商业(闭源) 自写

就个人用户使用,开源免费和使用方便。(安全系数很低,因为源码都是开源的)

开源:

源码可见

源码不可见:1.源码加密 2.语言特性

闭源:

想定制功能就花钱,定制商业的

自写:

而大公司那些,都是自写的(src那些大部分目标)

网站的一个权限:

解析访问:

如果不给你执行权限,那么后门脚本就没有用处,后门的所在文件夹需要执行权限,但是基本不会这么设置,只会锁图片目录(因为图片不影响),其他文件锁了会影响网站的执行

非常规搭建

站库分离:

网站和数据库是分离的(当今流行的微服务架构,一般是内网不同机交互,所以速度也不会慢)

如果放到本地,拿到网站权限就可以拿到数据

但是放到外面,拿到网站权限就不一定能拿到数据(外连或者是什么设置)

云数据库,安全性更高,不用账户密码连接,用阿里云的key,还有更多玩法

OSS存储

OSS 文件上传上去了,文件上传就没用了。

出现了太多的搭建模式,大部分漏洞都是针对传统搭建模式,现在遇到很多新的搭建模式显得力不从心。

比如数据库换成云数据库,存储文件换成OSS

访问模式

常规访问:

根据目录访问。

路由访问:

mvc源码,java源码,基本特点网站源码和url访问不到,需要根据特定的路由规则才能访问(也是要学开发的原因)

前后端分离(后台在哪个页面)

原理:前端js框架,api传输数据

影响:

1.前端页面大部分不存在漏洞

2.后端管理大部分不在同域名

3.获得权限后有可能不会影响到后台

思路:一般能找到后端地址就测试后端,找不到就看看有没有历史漏洞,如果也没有的话,就尝试社工方面

缺点:通过api传输的数据,如果是大量数据传递,api传递是跟不上传统的速度,大部分网站都是在效率和安全之间寻找一个平衡点

集成化搭建:

宝塔+phpstudy

原理:打包类集成环境,权限配置或受控制

影响:攻击者权限的对比区别

宝塔搭建的,有权限和命令的限制,后门连接上去,命令不能执行,文件也不能正常看见,

phpstudy 命令能够执行,文件能够查看

自己搭建的(IIS):命令能够执行,文件能够查看上一级,有些能执行有些不能执行

Docker容器搭建:

原理:虚拟化技术独立磁盘

影响:攻击者虚拟空间磁盘

(类似的技术docker逃逸)

建站分配站

1.托管模式

2.申请模式(比如凡科的)

原理:利用别人域名模板建立的

影响:攻击的是别人的站,可能面临一整个平台,风紧扯呼

静态web:

例子:大学学的html设计的网站, 最显著的特点无数据交互

影响:数据没有传输性(js传输不算)

影响:无漏洞

伪静态:

将动态伪装成静态(zblog发布文章的时候可以设置为静态)

web扩展

WAF

网站应用防火墙,提供防护和保护

影响:常规web安全测试手段会受到拦截

大部分:硬件型WAF,软件型WAF,云WAF

基本绕不了,面对于那些厂商的waf,安恒,绿盟,深信服

CDN

原理:内容分发服务,为了提高访问速度

影响:隐藏真实源ip,导致对目标测试错误

演示:阿里云备案域名全局cdn加速服务

OSS

对象存储应用

原理:云存服务,为了提高访问速度

影响:只存储,不解析,提高了安全性。修复了上传安全。

但是存在Accesskey 隐患

正向代理:

正向代理位于客户端和目标服务器之间,客户端通过代理服务器访问无法直接到达的服务器资源。正向代理代表客户端进行请求,对目标服务器来说,它看到的是代理服务器而不是真正的客户端。因此,正向代理可以用来绕过访问限制,提高访问速度(通过缓存),以及隐藏客户端的真实IP地址,保护用户的隐私。

反向代理:

反向代理则位于客户端和一组服务器之间,它接收来自客户端的请求并将其分发到后端的服务器上。对于客户端来说,它们感知不到后端的服务器,只与代理服务器进行交云。反向代理的主要作用包括负载均衡(通过分发请求到不同的服务器),提高访问速度(通过缓存静态内容),隐藏服务器的真实IP地址,以及提供额外的安全保护。

特点和影响:

反向代理中多出一个可以重定向解析的功能操作,导致反代理的站点和真实站点可以毫无关系

我的理解

正向代理和反向代理,按我的理解就是,假如说有三个主机 a b c ,正向代理:a想要访问c,但是不能直接访问,他只能访问到b,然后通过b将数据转发访问到c

反向代理:a要访问c,但是不能直接访问,a就访问到b,c把数据发送给b,达到间接访问的一个形式

负载均衡:

准备几台服务器,多个服务器支持这个服务,保证某台服务器出问题了,服务还能正常进行

负载均衡可以分摊任务,CDN不行。

网络也有负载均衡这个知识点,就是配置多个路由,加快访问。

今年网络那边面试就有 负载均衡和浮动路由的区别?