Web常规-系统&中间件&数据库&源码
常规web应用搭建
1、购买云服务器,购买域名
2、云服务器去搭建中间件
3、下载并上传Web程序源码
4、添加网站并绑定域名目录
目录站
访问不同的目录出现的网站不一样
子域名站
端口站
不同的端口出现不同的网站
其他站
集成软件
Docker容器
分配站举例:博客站的每个用户都会分配一个网站供自己使用,QQ空间也是这种模式,此类网站安全性更好,更难突破
常规web应用中间件
Web服务器:IIS、Apache、Nginx、Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish、Lighttpd等
Web中间件:Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish等
Web容器:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)
所以应该是 Web服务器>Web中间件>Web容器。
配置-身份验证
启用windows身份认证,外来人员需要输入账号密码
配置-目录权限
选择拒绝后,后门地址访问失败(无权限),一般锁图片目录(图片目录不用进行读取,执行)
配置-解析规则
媒体类型(通常称为 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/中
- 数据库目录
- 后台目录
- 文件目录
路由访问
路由访问常规: URL和文件目录对应上
路由访问: mvc源码java pythonURL和文件目录对应不上 要根据配置路由决定
访问一般有两种方式,普通的常规访问和路由访问,有些网站项目无法通过路径访问,比如java的web-inf文件,URL和文件目录对应不上,这种的需要配置路由才能访问某个网站
路径又分为相对路径和绝对路径,简单来说绝对路径就是某个文件的完整路径,相对路径就是该文件相当于当前位置的路径,我们在日常攻防网站中如果无法获取到绝对路径,就可以通过绝对路径来获取文件
常规访问
知识点归纳
0、知道Web必备四大件作用 系统&中间件&数据库&源码等
中间件作用
身份验证:每次访问重要目录就进行登录验证,未授权则401、账户密码正确即可访问。
目录权限:控制目录、文件的权限(读取、写入、执行)。控制执行权限,只允许读取等。
解析规则:配置中的MIME类型决定(img、pdf、 jsp等)
1、知道网站有哪些形式展示 cms:zblog 、wordpress
2、知道源码和URL访问对应关系
常规访问:目录对应关系,直接访问即可
路由访问:绝对路径/相对路径(mvc源码 java python)
特征:网站文件目录和url对应不上(要根据配置路由决定)
3、知道源码有加密开源闭源类型
4、知道文件访问解析由什么决定 MIME 类型
5、知道数据库存储数据站库分离
6、知道中间件配置影响后续手法
7、知道常规真实Web搭建解析流程
8、思考为什么要学习掌握这些东西