引言:
注意:本人学习、分享网络安全知识,目的是为社会提供网络安全服务,而不是搞破坏!老铁们学习网络安全后,故意照成破坏的行为,后果自行承担!!!
1、以下内容为本人学习网络安全基础知识的总结。
2、通过学习所有基础内容,思考几个问题:
(1)如何判断网站为那种搭建模式。
(2)模式对我们安全测试存在哪些影响。
(3)模式存在哪些可绕过、可利用的漏洞。
正文:
一、常规模式
使用 Web 四大件(系统、中间件、数据库、源码)进行搭建。
1、系统
分类:linux、windows、max等等
2、中间件 ------------------------------------
(1)作用
身份验证:每次访问重要目录就进行登录验证,未授权则401、账户密码正确即可访问。
目录权限:控制目录、文件的权限(读取、写入、执行)。控制执行权限,只允许读取等。
解析规则:配置中的MIME类型决定(img、pdf、 jsp等)
(2)分类
待更新... ...
3、数据库 ------------------------------------
本地数据库:本地一致
站库分离:另一台服务器的数据库(分两个站点放网站、数据库)、云数据库(安全系数最高,例如:RDS mysql)。
影响:数据被单独存放,能被连接才可影响数据
4、源码 ---------------------------------------
(1)类型
开源:未加密,个人、小公司使用博客等等,网上开源即可。(安全系数最低) ---> 代码审计 加密,语言特性决定
闭源:花钱叫专人开发符合自己公司业务的功能点。
自写:大型网站等,使用自己的团队开发。(安全系数最高)
结构组成:数据库目录、后台目录、文件目录
(2)源码和URL访问对应关系
常规访问:目录对应关系,直接访问即可
路由访问:绝对路径/相对路径(mvc源码 java python),特征:网站文件目录和url对应不上(要根据配置路由决定)
5、网站搭建形式 ---------------------------
子域名站点:多个域名指向一个ip地址,有的域名访问后没有内容,因为网站未绑定目录到此域名下。(图片网站:image.baidu.com、js网站:js.baidu.com)
目录站点:通过目录指向一个网站。(a网站:www.baidu.com/a/、b网站:www.baidu.com/b/)
端口站点:解析网站时,网站设置了其他端口也指向一个地址。(80站点:www.baidu.com:80、8080站点:www.baidu.com:8080)
分配站点:人家卖业务的,给你专业搭建网站,分配一个地址给你。
二、其他模式
1、前后端分离 ------------------------------
结构:后台文件 、 API传输数据 、 前端js文件(提高了安全性)
影响:1、前端页面大部分不存在漏洞
2、后端管理大部分不在同域名(子域名后台、目录后台、端口后台、其他)
3、获取的权限有可能不会影响后台(后台子域名不同等等导致)
思路:先找后端地址、找框架历史漏洞、社工、其他应用功能点。
2、软件(宝塔、PHPstudy) -----------
区别:常规网站搭建的区别,网站权限的区别。
宝塔搭建:帮你文件管理(锁定目录)、命令执行(无法执行)等。(安全系数最高)
常规搭建:不会默认限制,需要手工限制权限。(安全系数一般)
需要自己进行安全设置
影响的用户:本地搭建IIS服务的用户,例如:GJC
phpstudy搭建:可以执行whoami等命令获取网站权限 。(安全系数最低)
需要自己进行安全设置。
影响的用户:phpstudy会集成,强制使用administrator用户,例如:administrator。
3、Docker容器 ------------------------
原理:直接拉取别人搭建好的东西转换成镜像。
危害:即使被攻击者拿下,攻击者拿下的是虚拟空间的目录。(不是真正的权限)
绕过:Docker逃逸
4、建站分配 --------------------------------
托管:交给外包安全平台管理,安全性有安全公司决定。
申请:(判断)网站的域名,和网站表达的内容不一,大概率为申请的网站。
(原理)利用别人域名模版建立。
(影响)实质安全测试非目标资产。
(举例)“凡科建站”平台上面申请的,域名都是别人的,测试的平台的网站。
5、静态Web ------------------------------------
判断:页面美观很差、没有几个功能点
原理:html代码写死、数据没有传输性(js传输不算)
举例:大学学的html设计的网站
影响:无漏洞
6、伪静态页面 --------------------------------
原理:网站有将页面生成静态页面的功能点
举例:动态页面 ?id=3 通过功能点生成 3.html 静态页面
目的:干扰人员判断
三、拓展模式
1、WAF防护 ----------------------------------
原理:网站提供保护
影响:常规Web安全测试手段会收到拦截
分类:
(1)非嵌入型:硬件型WAF:
软件型WAF:
云WAF:
(2)嵌入型:网站内置的WAF:开发人员增加一些过滤代码。
2、CDN加速(需要准备好备案域名) ----
步骤:(1)配置宝塔的域名绑定 ip ---> 域名
(2)配置cdn加速选项 国内、全国等
(3)添加DNS CNAME记录
原理:内容分发服务,旨在提高访问速度
影响:隐藏真实源IP,导致对目标测试错误。扫描出来的目录都不完整。
操作:找出真实IP、扫描真实IP下面的文件。
3、OSS存储 --------------------------------------
原理:云存储服务,旨在提高访问速度(暂停中)
作用:提供网盘、专门存储图片、音频、视频等资源文件,脚本上传后无法执行。
影响:修复上传安全
文件解析不一样
但Accesskey隐患(如果泄露,会导致云安全严重泄露)
4、反向代理 & 正向代理 -----------------------
正向代理:客户端 --> 代理服务器(类似vpn) --> 服务器(不代理不可达)
影响:无影响,是我们连接不到对方服务器,主动使用代理进行连接,访问的依然是对方的服务器。
反向代理:服务器主动转发数据给到a地点,然后你再去访问a地点。(不主动不可达)
影响:访问目标只是一个代理,非真实应用服务器
注意:正向代理 和 反向代理 都是解决访问不可达的问题,由于反向代理中多了一个可以重定向解析的操作,导致反向代理后,我们访问到的站点和真实站点毫无关系。
(内网:不同于正向连接、反向连接)
5、负载均衡 ---------------------------------------
原理:分摊到多个操作单元上进行执行,共同完成工作任务。(解决灾难导致的服务器崩溃)
影响:有多个服务器加载服务,测试过程中存在多个目标情况
#定义负载设置
upstream fzjh{
server 47.94.236.117:80 weight=10; 设置访问权重10,访问10次后才变下面那个地址
server 47.122.22.195:80 weight=1;
}
#定义访问路径 访问策略
location / {
proxy_pass http://fzjh/;
}
总结:
本篇文章我们学习了以下知识点:
1、网站架构包括:常规模式、前后端分离、集成软件、Docker容器、静态页面、伪静态页面。
2、网站架构存在:WAF防护、CDN加速、OSS存储、反向代理、负载均衡。
网站架构的搭建的模式、安装的软件、配置的策略。都会对我们的安全测试照成一定的影响。我们应该如何通果对应的特征去判断,并且根据模式制定更好的渗透测试计划成了一个重点。
结尾:
网络安全,无非就是攻防的过程,正所谓知己知彼,百战百胜,我们作为攻击者的一方,应该知道防守人员通过什么模式、软件、策略来对我们做出干扰、拦截。这样才能在千万条道路中,寻找出最合理、最高效的一条拿下我们的测试目标。
最后,秀一下我的小橘猫:蜜橘