本章概述#
本書旨在教授 web 開發者必備的資安知識。在深入技術細節之前,作者先帶讀者站在攻擊者的角度,了解駭客是如何運作的,以及入門攻擊有多麼容易。
Software Exploits 與 Dark Web#
- 駭客利用軟體中的安全漏洞來攻擊網站等系統
- 在駭客社群中,展示如何利用安全漏洞的程式碼被稱為 exploit
- White hat hackers(白帽駭客):以發現漏洞為樂,會在公開前通知軟體廠商與網站擁有者,通常能獲得漏洞獎金(bug bounty)
- Black hat hackers(黑帽駭客):囤積 exploit 以最大化利用時間窗口,甚至在黑市上以加密貨幣出售 exploit code
Zero-Day Exploits#
- Zero-day exploit 是指被公開不到一天、或根本尚未公開的漏洞利用程式
- 即使軟體廠商釋出修補程式(patch),許多系統仍會長時間處於未修補狀態
- 現今的 exploit 會迅速被武器化,並整合為駭客社群廣泛使用的命令列工具
Dark Web 黑市#
- Dark web 上存在販售被盜信用卡資料、被入侵帳號、zero-day exploit 的黑市
- 這些網站透過特殊的網路節點匿名化使用者的 IP 位址
- 駭客工具不僅在 dark web 上可取得,許多甚至只需一次 Google 搜尋就能找到

Figure 1-1: Dark web 上的信用卡黑市交易網站
如何攻擊一個網站#
作者展示了入門駭客攻擊的簡單步驟:
- 下載 Kali Linux — 一個專為駭客設計的 Linux 發行版,預裝超過 600 種安全與駭客工具,由 Offensive Security 團隊維護,完全免費
- 安裝虛擬機器 — 使用 Oracle VirtualBox 等 virtual container 在現有系統上執行 Kali Linux,無需覆蓋原有作業系統
- 安裝 Kali Linux 到虛擬機器中
- 啟動 Metasploit — 最受歡迎的命令列漏洞掃描與測試工具

Figure 1-2: Metasploit 框架的 ASCII 藝術啟動畫面
- 執行
wmap工具 — 對目標網站掃描 URL 列表,測試 web server 是否存在安全漏洞

Figure 1-3: 使用 wmap 掃描網站漏洞
- 選擇一個 exploit — 從 Metasploit 資料庫中挑選合適的 exploit 來利用漏洞
請務必只在自己擁有的網站上執行這些工具。未經授權對他人網站進行攻擊可能構成犯罪行為。
本章重點#
- 駭客攻擊的門檻極低:Metasploit 和 Kali Linux 等工具無需任何特殊技能即可使用,幾分鐘內就能設定完成,卻能極有效地識別和利用漏洞
- Web 開發者面臨的現實:我們建立的網站對任何有網路連線的人開放,駭客工具同樣對任何人開放
- 本書的目標是讓開發者擁有與駭客同等的安全知識,在網站遭受攻擊時能夠充分防禦
理解攻擊者的思維與工具,是建立有效防禦的第一步。本書接下來將從網際網路協定的基礎構件開始,逐步建立完整的安全知識體系。