Web类别

附:完整笔记目录~
ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!

1.1.2 Web类别

  1. 引子:上一篇主要对Web的组成做了总结,本章则对我们所能遇到大多数Web类型进行总结。

  2. Web架构类型

    1. 纯静态Web

      1. Traits:纯前端页面,仅为展示作用,无任何用户与Web的交互功能。由于无任何动态功能,因此也不存在常见的Web漏洞。
    2. 前后端不分离

      1. Traits:前端代码镶嵌在后端框架中。当用户访问时,由后端将前端页面渲染后再发送给用户,而用户对Web进行交互时,交互行为以http数据包的形式发送至后端,后端处理完用户请求后再返回新的前端页面给用户。

        由于这种工作模式,导致用户每一次与Web进行交互时都会刷新一次页面。现在这种站应该很少了吧?

    3. 前后端分离Web

      1. Traits:前端页面一般被放置在静态资源服务器或CDN上,后端页面则仍放置在后台服务器,二者不再相互嵌套,前后端通过接口通信,如AJAX。前后端分离的Web在处理用户交互时仅会更改前端页面的部分内容,而无需重新加载。
  3. Web搭建类型

    1. 套模板搭建

      1. Traits:即所创Web是基于官方所提供模板而生成。与其说是个人网站/博客,其本质则为官站下的子站。因此是否会产生漏洞,与官站相关,而与渗透测试目标无关。
      2. 例:csdn、博客园等站内个人博客,依托于建站系统生成的网站等。
    2. 自主/镜像搭建

      1. Traits

        1. 自主搭建:即上一章所提Web架构均由开发者自己分别部署,如通过官网自己下载Apache、Php、Mysql等。

        2. 镜像搭建:与自主搭建类似,只不过操作系统镜像内已提前安装好了Apache、Php等,无需开发者再次下载。

      2. 例:阿里云镜像市场可直接购买含操作系统+Web组件的镜像系统。

        image-20241119222859115

    3. 集成软件搭建

      1. Traits:通过集成软件面版进行一键搭建。如宝塔,Phpstudy等,可一键部署安装所需组件,且集成软件一般会内置安全策略。总之相较于自主/镜像搭建,更方便也更安全。

      注:镜像市场中同样也包含操作系统+集成软件的镜像系统。

    4. 容器搭建

      1. Traits:简单来说,一个容器相当于一个虚拟机。只不过容器仅虚拟操作系统,而虚拟机则连同硬件如处理器、网卡等一同虚拟。而容器搭建,则是将Web搭建到容器所虚拟的操作系统中。
      2. 例:使用docker pull下来的Web组件镜像。
  4. 实验

    1. 实验内容:通过自主/镜像、集成软件、容器搭建Web服务,并上传后门,观察这三种搭建形式下WebShell权限的不同。

    2. 步骤

      1. 阿里云租三台Ubuntu服务器,分别采用上述三种方式搭建Web服务。

      2. 自主搭建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
        
      3. 使用宝塔搭建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服务
        
      4. 使用docker部署Web服务

        sudo apt update
        sudo apt install -y docker.io
        sudo systemctl start docker
        
        docker pull php:7.4-apache
        
      5. 分别上传使用哥斯拉生成.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
        
      6. 使用哥斯拉连接,并观察其不同搭建方式下服务器权限的区别

        1. 自主搭建

          image-20241120143020231

          高权限,且支持跨目录访问&命令执行等。

        2. 宝塔搭建

          image-20241120143316451

          由于宝塔的安全策略,不支持跨目录访问&命令执行

        3. docker搭建

          image-20241120144209309

          显然,通过docker搭建的Web服务是独立于本机的,则即使拿到了Webshell也是其容器权限而与真实服务器无关,那怎样通过容器权限拿真实服务器权限呢?

      7. 本章节实验结束

posted @ 2024-12-04 23:08  1999er  阅读(11)  评论(0编辑  收藏  举报