CTF入門學習2->Web基礎瞭解

climerecho 發表於 2021-11-19

Web安全基礎

00 Web介紹

00-00

Web本意是網,這裡多指全球資訊網(World Wide Web),是由許多互相連線的超文字系統組成的,通過網際網路訪問。

Web是非常廣泛的網際網路應用,每天都有數以億萬計的Web資源傳輸。

我們平時通過瀏覽器上網都屬於Web。

PS:全球資訊網和網際網路、因特網又有什麼聯絡呢?

 

00-01 Web發展史

Web1.0

初期;

  • 典型示例:

    • 入口網站

    • 個人頁面

  • 安全問題:

    • SQL隱碼攻擊

    • 上傳漏洞

    • 檔案包含

    • 掛馬、暗鏈

    • 命令執行

    • (主要危害Web伺服器)

一般就是提供靜態的頁面給使用者,而且這種資訊只能夠閱讀,不能夠修改或新增。

Web2.0

如今;

  • 典型示例:

    • 微博

    • Blog

  • 安全問題:

    • (更復雜,逐漸針對Web使用者

    • 釣魚

    • URL跳轉

    • 資料劫持

    • 框架漏洞

    • CSRF

    • XSS

    • 邏輯漏洞

Web安全形勢不容樂觀,數量迅速增長,種類迅速增多,從針對Web伺服器到Web使用者,所以Web安全知識比較重要。

00-02 Web工作流程

以點餐類比

CTF入門學習2->Web基礎瞭解

 

 

 

通常我們作為客戶,只需要向服務員點餐、服務員上餐就可以了,而如果想要了解全過程,那Web的後續和餐廳訂餐的後續也是很像的。

下面是Web提供服務的標準流程:

CTF入門學習2->Web基礎瞭解

 

 

這裡也分為客戶端和服務端。

上面的安全問題也可以以此劃分。

CTF入門學習2->Web基礎瞭解

 

 

00-03 瀏覽器

工作原理

我們訪問一個網站,輸入的是一個URL(域名/網址),瀏覽器是無法通過我們輸入的URL找到相應的Web伺服器的,它只能通過IP地址才能找到Web伺服器。

所以第一步,瀏覽器先通過URL獲取Web伺服器的IP地址(也稱DNS解析);

第二步,才是通過解析得到的IP地址,訪問Web伺服器。

工作示例

我們開啟瀏覽器,輸入:https://www.cnblogs.com/Roboduster

瀏覽器收到這個URL,會先進行上面說到的DNS解析,通常情況下,瀏覽器會先向DNS伺服器傳送解析請求,請求查詢這個URL的IP地址。

DNS伺服器處理完成後,返回這個IP地址。

瀏覽器接收這個資訊,並據此找到WEB伺服器。

之後,需要根據HTTP協議進行通訊。

瀏覽器先傳送一個HTTP請求,伺服器處理完後,會返回一個HTTP響應給瀏覽器。

操作演示

我們開啟https://www.cnblogs.com/Roboduster

按F12(自行找到開發者工具),選中網路這一格

CTF入門學習2->Web基礎瞭解

 

 

然後我們,找到左側的all(全部),點選,重新整理該頁面。

CTF入門學習2->Web基礎瞭解

 

 

重新整理後可以看到瀏覽器傳送了很多請求。這些請求就是我們說的HTTP請求。

我們選中左側的任何一個js檔案,右側標頭(head)裡可以看到請求的詳細資訊。響應裡有這個js經過壓縮的樣子。預覽可以看到好一點的程式碼風格。

CTF入門學習2->Web基礎瞭解

 

 

同理可以檢視CSS和img等各種檔案格式。

最重要的是我們需要關注上方的文件(Doc),這是我們請求的主頁面,我們可以在下面的計時(timing)檢視請求的耗時

CTF入門學習2->Web基礎瞭解

 

 

標頭裡我們可以看到遠端地址,這裡就是所請求的IP對應的伺服器的地址

在響應裡可以看到我們請求得到的資料體

00-04 留一個問題

通過上面的操作我們可能會有疑問,我們檢視的是HTTP響應,這裡是相應的資料流,而我們平時上網看到的是各色各樣的Web頁面

那麼瀏覽器是如何將伺服器返回的HTTP響應轉換成我們看到的頁面的呢?

這就涉及各種標準和技術:HTML、JS、CSS等;這些東西將響應渲染成特定的頁面給使用者。