附:完整笔记目录~
ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!
1.1.2 Web类别
-
引子:上一篇主要对Web的组成做了总结,本章则对我们所能遇到大多数Web类型进行总结。
-
Web架构类型
-
纯静态Web
- Traits:纯前端页面,仅为展示作用,无任何用户与Web的交互功能。由于无任何动态功能,因此也不存在常见的Web漏洞。
-
前后端不分离
-
Traits:前端代码镶嵌在后端框架中。当用户访问时,由后端将前端页面渲染后再发送给用户,而用户对Web进行交互时,交互行为以http数据包的形式发送至后端,后端处理完用户请求后再返回新的前端页面给用户。
由于这种工作模式,导致用户每一次与Web进行交互时都会刷新一次页面。现在这种站应该很少了吧?
-
-
前后端分离Web
- Traits:前端页面一般被放置在静态资源服务器或CDN上,后端页面则仍放置在后台服务器,二者不再相互嵌套,前后端通过接口通信,如AJAX。前后端分离的Web在处理用户交互时仅会更改前端页面的部分内容,而无需重新加载。
-
-
Web搭建类型
-
套模板搭建
- Traits:即所创Web是基于官方所提供模板而生成。与其说是个人网站/博客,其本质则为官站下的子站。因此是否会产生漏洞,与官站相关,而与渗透测试目标无关。
- 例:csdn、博客园等站内个人博客,依托于建站系统生成的网站等。
-
自主/镜像搭建
-
Traits
-
自主搭建:即上一章所提Web架构均由开发者自己分别部署,如通过官网自己下载Apache、Php、Mysql等。
-
镜像搭建:与自主搭建类似,只不过操作系统镜像内已提前安装好了Apache、Php等,无需开发者再次下载。
-
-
例:阿里云镜像市场可直接购买含操作系统+Web组件的镜像系统。
-
-
集成软件搭建
- Traits:通过集成软件面版进行一键搭建。如宝塔,Phpstudy等,可一键部署安装所需组件,且集成软件一般会内置安全策略。总之相较于自主/镜像搭建,更方便也更安全。
注:镜像市场中同样也包含操作系统+集成软件的镜像系统。
-
容器搭建
- Traits:简单来说,一个容器相当于一个虚拟机。只不过容器仅虚拟操作系统,而虚拟机则连同硬件如处理器、网卡等一同虚拟。而容器搭建,则是将Web搭建到容器所虚拟的操作系统中。
- 例:使用docker pull下来的Web组件镜像。
-
-
实验
-
实验内容:通过自主/镜像、集成软件、容器搭建Web服务,并上传后门,观察这三种搭建形式下WebShell权限的不同。
-
步骤
-
阿里云租三台Ubuntu服务器,分别采用上述三种方式搭建Web服务。
-
自主搭建Web服务,通过阿里云镜像仓库下载Apache
# 仅更新软件包索引,检查是否存在新版本 sudo apt update # 对已安装软件包进行更新 sudo apt upgrade -y # 安装中间件 sudo apt install apache2 -y sudo systemctl start apache2 sudo systemctl status apache2 # 安装php语言环境 sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-xml php-mbstring -y sudo systemctl stop ufw
-
使用宝塔搭建Web服务,先安装宝塔面板,再通过宝塔面板一键安装Web服务
sudo apt install -y wget curl wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh sudo bash install.sh # 安装完成后,根据提示进入宝塔面板再安装Web服务
-
使用docker部署Web服务
sudo apt update sudo apt install -y docker.io sudo systemctl start docker docker pull php:7.4-apache
-
分别上传使用哥斯拉生成.php的后门文件
# 自主搭建,Web服务默认目录为:/var/www/html # 宝塔搭建,默认目录为:/www/wwwroot/xxx.xxx.xxx.xxx/ # docker搭建,需将本地文件挂载至其http服务的默认目录下 docker run -d --name test-web -p 80:80 -v /door.php:/var/www/html/door.php php:7.4-apache
-
使用哥斯拉连接,并观察其不同搭建方式下服务器权限的区别
-
自主搭建
高权限,且支持跨目录访问&命令执行等。
-
宝塔搭建
由于宝塔的安全策略,不支持跨目录访问&命令执行
-
docker搭建
显然,通过docker搭建的Web服务是独立于本机的,则即使拿到了Webshell也是其容器权限而与真实服务器无关,那怎样通过容器权限拿真实服务器权限呢?
-
-
本章节实验结束
-
-