對于CTF想要深入了解,Web'基礎要了解一些。
這是我學習Web内容的第一篇,主要介紹Web的發展史、Web的工作機制與相關的實操展示。
Web本意是網,這裡多指網際網路(World Wide Web),是由許多互相連接配接的超文本系統組成的,通過網際網路通路。
Web是非常廣泛的網際網路應用,每天都有數以億萬計的Web資源傳輸。
我們平時通過浏覽器上網都屬于Web。
PS:網際網路和網際網路、網際網路又有什麼聯系呢?
初期;
典型示例:
門戶網站
個人頁面
安全問題:
SQL注入
上傳漏洞
檔案包含
挂馬、暗鍊
指令執行
(主要危害Web伺服器)
一般就是提供靜态的頁面給使用者,而且這種資訊隻能夠閱讀,不能夠修改或添加。
如今;
微網誌
Blog
(更複雜,逐漸針對Web使用者
釣魚
URL跳轉
資料劫持
架構漏洞
CSRF
XSS
邏輯漏洞
Web安全形勢不容樂觀,數量迅速增長,種類迅速增多,從針對Web伺服器到Web使用者,是以Web安全知識比較重要。
以點餐類比
通常我們作為客戶,隻需要向服務員點餐、服務員上餐就可以了,而如果想要了解全過程,那Web的後續和餐廳訂餐的後續也是很像的。
下面是Web提供服務的标準流程:
這裡也分為用戶端和服務端。
上面的安全問題也可以以此劃分。
我們通路一個網站,輸入的是一個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(自行找到開發者工具),選中網絡這一格
然後我們,找到左側的all(全部),點選,重新整理該頁面。
重新整理後可以看到浏覽器發送了很多請求。這些請求就是我們說的HTTP請求。
我們選中左側的任何一個js檔案,右側标頭(head)裡可以看到請求的詳細資訊。響應裡有這個js經過壓縮的樣子。預覽可以看到好一點的代碼風格。
同理可以檢視CSS和img等各種檔案格式。
最重要的是我們需要關注上方的文檔(Doc),這是我們請求的首頁面,我們可以在下面的計時(timing)檢視請求的耗時
在标頭裡我們可以看到遠端位址,這裡就是所請求的IP對應的伺服器的位址
在響應裡可以看到我們請求得到的資料體
通過上面的操作我們可能會有疑問,我們檢視的是HTTP響應,這裡是相應的資料流,而我們平時上網看到的是各色各樣的Web頁面。
那麼浏覽器是如何将伺服器傳回的HTTP響應轉換成我們看到的頁面的呢?
這就涉及各種标準和技術:HTML、JS、CSS等;這些東西将響應渲染成特定的頁面給使用者。