web架构
网站四大件
操作系统-中间件-数据库-网站源码
常规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不行。
网络也有负载均衡这个知识点,就是配置多个路由,加快访问。
今年网络那边面试就有 负载均衡和浮动路由的区别?