近期在学习小迪的网络安全课程,前几期的内容非常简单基础,但越是简单基础的知识,越蕴含着雄厚的道理,知晓这些基础内容,有利于我们在今后的攻防中针对不同的情况做出正确的判断,从而采取有效的方法
一、WEB四大件-系统
web的四大件分别为系统、中间件、数据库、源码,我们通过一套完整的web搭建来分别解释四大件的作用。web搭建有多种方式,在本地搭建,在服务器搭建,web搭建又分为不同的系统,比如linux还是window等等,之前我只在Linux中搭建过相关web服务,正好今天学习一下在window server中搭建web
购买服务器搭建网站
1.购买域名:https://wanwang.aliyun.com/domain/yumingheji
2.购买服务器:https://ecs.console.aliyun.com/home,选择按量付费(注意,如果按量付费,阿里云的余额不得低于100,也可以选择腾讯云,可以直接购买,没有余额限制),镜像选择window server 2012 r2 ,其他配置默认即可
3.购买成功后,我们访问https://ecs.console.aliyun.com/home即可看到我们的服务器,点击远程连接即可连接,也可以直接通过本地电脑的远程连接输入服务器的ip和密码来连接使用(推荐这种方式)
4.打开域名控制台,找到自己的域名,点击解析,记录类型为A,主机记录随便写,记录值为上面window server服务器的公网ip
5.根据教程Windows Server2012 环境下搭建IIS_windowsserver2012安装iis_小方不慌(网安版)的博客-CSDN博客搭建IIS,整个过程非常简单,无脑点下一步即可
6.打开zblog官网,下载asp版本的blog源码,下载地址:https://update.zblogcn.com/onlineasp/install.zip,下载好后,解压到指定目录
7.打开window server中的IIS,右击选择IIS管理器,找到左侧的网站按钮,右击添加网站,物理路径即我们下载的blog源码的解压地址,主机名即我们的二级域名
8.设置完成后,我们点击应用程序池,找到zblog-高级设置-启用32位应用程序为true
-
点击网站的功能视图,打开默认文档设置,将Default.asp置顶
此时访问study1.zhangjia.pro,安装网站即可
网站的三种模式
-
子域名模式 -
我购买的域名是zhangjia.pro,则study.zhangjia.pro就是zhangjia.pro的子域名,又叫二级域名 -
在现实生活中,一般一个域名对应多个子域名,每个子域名对应不同的系统,我们可以分别去攻击 -
端口模式 -
网站的端口号默认是80,不加端口号也可以直接访问 -
可以通过更换不同的端口号来访问不同的系统,如果更换为其他端口,则必须访问的时候添加端口号,格式为 域名:端口号
-
目录模式 -
域名/a和域名/b可以部署两套不同的程序,通过更换域名的目录,即可访问不同的程序 -
其他模式 -
集成软件 -
Docker容器 -
分配站 -
举例:博客站的每个用户都会分配一个网站供自己使用,QQ空间也是这种模式,此类网站安全性更好,更难突破
web程序源码
-
分为三种形式 -
开源 -
商业 -
自写
二、WEB四大件-中间件
常见的中间件配置包括目录权限、身份验证、解析规则,在日常的攻防中,当我们访问某个文件受阻的时候,就要考虑是不是某个中间件配置生效了
目录权限
每个网站都可以通过配置各种中间件来设置不同的文件访问权限,还是以上面的系统为例,我们打开任一文件,右击编辑权限-安全-编辑,即可修改该文件的访问状态,如果设置成拒绝访问,那么外部人员即使获取到了该文件的地址也无法访问
身份认证
还可以通过用户验证的方式,只有登录成功的用户才有访问权限,选中某个文件-功能视图中选择身份验证,关闭匿名访问,打开window身份验证即可
解析规则
媒体类型(通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型)是一种标准,用来表示文档、文件或字节流的性质和格式,通过该规则我们能够根据文件的后缀来解析指定的文件格式,某些网站会存在解析漏洞,我们可以将木马文件上传后,通过修改解析规则来执行木马
三、WEB四大件-数据库
数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。在现实中,数据、DBMS 及关联应用一起被称为数据库系统,通常简称为数据库
简单来说,我们打开某个网站,该网站的文章、动态、配置、我们的用户名和密码都是存储在数据库中
数据库有以下几种常见模式:
-
本地存储:网站和数据库存储在同一个服务器中,如果数据库放在本地,那么拿到了网站的数据,一般也能拿到数据库的数据 -
站库分离:网站和数据库不在同一个服务器中,网站访问数据库通过远程连接等方式,比如网站存储在A服务器,数据库存储在B服务器,每次客户请求数据时,A服务器从B服务器获取内容,如果是站库分离的网站,拿到了网站的数据,也不一定能拿到数据库 -
云数据库:云数据库是近几年兴起的一个产品,简单来说就是把数据库存储在云端上,常见的有阿里云数据库和腾讯云数据库,相比传统的服务器,云安全系数更高,登录方式和安全组等安全配置更加复杂,还包含在线统计和分析等特色功能,同云数据库相似的还有OSS,网站文件不在存储在本地,而是存储在OSS中,OSS只做存储使用,不会执行我们上传的后门
四、WEB四大件-源码
源码类型
网站的源码分为以下几个类型,如果能拿到源码就可以进行白盒测试-代码审计
-
开源 -
源码可见,比如GitHub和Gitee中公开的项目大多是源码不可见的 -
源码不可见,,比如GitHub和Gitee中开源的付费项目项目大多是源码不可见的,有的是通过代码加密来实现,也有的是语言特性决定的,比如java编译好的都是class文件,打开都是字节码(可以通过反编译来还原代码) -
商业 -
自用
结构组成
不同类型的网站的各种文件目录是有规律的,我们在攻防某个网站的时候,即使没有获取到该网站的目录,也可以通过该网站的类型来判断常见目录,比如WordPress类型的网站一般把主题存在/wp-content/themes/中
-
数据库目录 -
后台目录 -
文件目录
路由访问
访问一般有两种方式,普通的路径访问和路径访问,有些网站项目无法通过路径访问,比如java的web-inf文件,URL和文件目录对应不上,这种的需要配置路由才能访问某个网站
路径又分为相对路径和绝对路径,简单来说绝对路径就是某个文件的完整路径,相对路径就是该文件相当于当前位置的路径,我们在日常攻防网站中如果无法获取到绝对路径,就可以通过绝对路径来获取文件,具体教程详见相对路径和绝对路径?简洁易懂解释+实例
参考资料
以上内容整理自小迪安全2023年系列课程 xiaodi8.com