Pwn 念作「胖!」或「碰!」,這個詞源於英文的「Own」,即「掌控」之意,在資安領域等同於 Binary Exploitation,直譯為「二進制檔案利用」。顧名思義,Pwn 涉及的是尋找二進制程式中的漏洞,並通過這些漏洞取得系統的控制權,無論是個人電腦、伺服器還是網路設備。
在 CTF 競賽中,Pwn 通常被認為是最難入門的一類,原因是需要涉及的基礎知識很廣。凡舉如何將二進制檔案轉為程式碼的逆向技術、程式運行的原理以及程式執行中對記憶體的存取方式等都必須了解,原因是理解這些底層原理,才能找到其破綻,成功發現並利用漏洞,達到 Pwn 的目的。
作為一名新手,我剛開始接觸 Pwn 時並沒有充分理解這些底層原理。由於缺乏系統化的學習,不清楚應該按照什麼順序來學習 Pwn,很難有效地找到我所需要的資源。因此我的學習過程非常零散。常常只懂一些皮毛,雖然偶爾能成功完成 Pwn,但卻對自己做了什麼一知半解。
網上雖然有很多優秀的資源,但這些資源通常較為分散,而且多以簡報形式呈現。寫這個系列的目的,是希望能幫助像我一樣的新手,在入門 Pwn 時不再那麼混亂。以文章的方式透過系統化的介紹,從底層原理開始,逐步了解攻擊過程,直到能夠獨立完成 Pwn,最終成為一名 PWNer!