Web類別(小迪網路安全筆記~

19999er發表於2024-12-04

附:完整筆記目錄~
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. 本章節實驗結束

相關文章