CTF入門 = ## What is CTF? 在許多的競賽遊戲中,奪下對手的旗幟是一種勝利的宣告,從古代的軍事活動到現在的電腦競技活動,奪旗(Capture The Flag,CTF)一直是一種勝利的表徵,可以奪下對手越多數量的旗幟,表示我方的贏面越大。 CTF(奪旗賽,我說資安的那種)前身是傳統黑客之間的網絡技術比拼遊戲,起源於 1996 年 DEFCON 全球黑客大會,是網絡安全愛好者之間的競技遊戲。 --- - 考驗資安的比賽 - 目標:獲得flag - 通常是一段字串 - 每個比賽/平台通常會有自己固定的格式 - ex. picoCTF{...} - 有些||比較糟糕的||比賽會有假flag - 大括號的內容常有[L337](https://zh.wikipedia.org/zh-tw/Leet) --- - 大部分比賽的分類 - Web 網頁相關的所有東西 - Reverse 逆向工程 - Pwn(Binary Exploitation) 二進制漏洞利用 - Crypto 密碼學(簡稱數學) - Forensics 分析各種資訊,包括記憶體或是檔案之類的(通靈之一) - Misc 不知道要分哪裏的都會放在這裡(通靈之二) --- ### Jeopardy - 簡稱:通靈遊戲 - 會有很多種不同題目,要根據題目指示~~或你的第六感~~找到flag - 每題有不同分值,會根據答題的人數改變,有時候有前幾殺特權 - 我只打過這個 ### Attack and Defense - 每一個隊伍有主機,提供有一堆洞的服務 - 修好自己的 - 攻擊別人的 ### King of the Hill - 主辦方提供一個服務 - 佔領並維護他 - 佔領時長越久越多分 --- ## 營隊、比賽、資源... // 對不起我有空再整理 - 先去註冊picoctf!! --- ## 前言 - 開始打資安前可以先去裝個kali linux - 除了必要的理由以外: - 東西比較好整理 - 玩壞不會心疼 - mac其實蠻好用的了(但我還是折服於vmware fusion) - 下面的內容不會用到,||可以之後想到再去裝|| --- ## Web基礎知識 ### 前後端 - 可以把前端想像成點餐 後端想像成出餐 - 使用者理所當然只能接觸到點餐的部分 - 後端負責處理各種請求 ### 前端 - 所有東⻄都會直接顯⽰給使⽤者 - HTML、CSS、JS - 以ctf來說很常可以從js裡面看~~或通靈~~出你需要找的東西 ### 後端 - 背後運作的伺服器與程式 處理資料與邏輯 - 處理使用者的請求(ex. 登入、查詢資料...) - 連接資料庫存取資料 - 動態顯示網頁資料  ### HTTP/HTTPS - 超文本傳輸協議 **H**yper**t**ext **T**ransfer **P**rotocal - 定義如何向伺服器請求資料 - 適用於用戶端-伺服器通訊的協定或一組通訊規則 - HTTP: - 開放系統互相連線 (OSI) 網路通訊模型中的應用層通訊協定 - 定義了多種類型的請求和回應 - HTTP請求: - GET:取得資料,例如打開網頁、查資料 - POST:送出資料,例如表單提交、登入操作 - HEAD、PUT、DELETE... ``` GET / HTTP/1.1 Host: www.google.com ``` - [HTTP回應](https://developer.mozilla.org/zh-TW/docs/Web/HTTP/Reference/Status#%E8%B3%87%E8%A8%8A%E5%9B%9E%E6%87%89): - 資訊回應(100——199) - 成功回應(200——299) - 重新導向訊息(300——399) - 用戶端錯誤回應(400——499) - 伺服器錯誤回應(500——599) - 今天凌晨兩點的HackMD - HTTPS - 必須從獨立的憑證認證機構 (CA) 取得 SSL/TLS 憑證 - SSL/TLS憑證:一種數位物件,允許系統驗證身分並隨後使用 Secure Sockets Layer/Transport Layer Security 協定,與另一個系統建立加密網路連線 - Web 瀏覽器上的掛鎖圖示和綠色地址欄 - 瀏覽器網站地址上的 https 前綴 - 建立加密連線後 只有用戶端和 Web 伺服器才能看到傳送的資料 - ||中華電信 酷到發瘋 有興趣可以自己去查|| - 伺服器和 Web 瀏覽器可交換加密或混亂的資料 - HTTP Vs. HTTPS - HTTP - 沒有對傳輸資料做加密 - HTTPS(HTTP secure) - 允許對傳輸資料進⾏加密 - HTTPS 需要向憑證頒發機構申請相關憑證  --- ### 隱藏檔案與伺服器設定檔 - robots.txt - 指示搜尋引擎爬蟲哪些網頁可抓取、哪些不可抓 - 位置:網站根目錄/robots.txt - 可能藏有不想被外界看到的隱藏路徑或檔案 - ctf常見線索來源 - 來看看[IKEA](https://www.ikea.com/robots.txt) - .htaccess - Apache目錄級設定檔 - 控制權限 重寫網址 密碼保護 - 設定規則若被公開 可能洩露進攻方向或特殊目錄資訊 - .htpasswd - 與.htaccess配合的密碼檔 - 存放帳號與加密密碼 - 能嘗試破解登入密碼 - .git - Git版本控制目錄 - 所有版本紀錄和原始碼 - 可下載整個程式碼 挖掘漏洞和敏感資訊 - .DS_Store - MacOS自動生成的資料夾設定檔 - 可能透露目錄結構或隱藏資訊 --- ### F12 - 使用方式 - 在網頁按鍵盤上的F12 - 在網頁點右鍵 Inspect - 元素(Elements) - 查看、編輯網頁的HTML結構 - 查找隱藏文字、註解、元素屬性 - 可以修改 但僅對當前的頁面渲染生效 - ctrl(cmd)+f找flag 好用 - 控制台(Console) - 顯示js錯誤、輸出訊息 - 可輸入js指令試驗 - 控制台日誌:js中用console.log()函數輸出的日誌信息會在console顯示 - 源代碼(Sources) - 查看到當前網頁的所有源文件 - 有時候flag也會在這(同理Elements - 網絡(Network) - 監控網頁載入的所有請求(HTML、CSS、JS、API請求、圖片)並進行回放 - 查看各個資源內容與回應數據 - 另存為文件進行分析 - 開preserve log:頁面重新整理或跳轉時不會清除已經捕捉到的網路請求記錄 - 預設會在你刷新頁面或切換頁面時把之前的請求清空 - 應用面板(Application) - 管理網站資料(ex. Cookie、LocalStorage、SessionStorage) - Cookie: - 瀏覽器用來儲存網站資料的一種小型文字檔 - 記錄狀態、設定 - 造訪網站 伺服器會用HTTP回應給瀏覽器Set-Cookie指令 - 之後同一網站的請求就會自動附帶那個Cookie - 可以修改Cookie內容(ex. user=admin)來嘗試權限提升 - 修改後刷新頁面 --- ### 題外話 - base64 - ctf很愛用的編碼方式 - 一種將二進制數據表示為ASCII字符的編碼方式 - 目的:將二進制數據轉換為文本數據 以便在文本協議中傳輸 - 後面很多時候會有=或==,很好認 - ~~看久了會有一種感覺他是base64~~ - ex. ```fgisc -> Zmdpc2M=``` --- ## 題單 ### F12 - https://play.picoctf.org/practice/challenge/275?category=1&page=1 - https://play.picoctf.org/practice/challenge/274?category=1&page=1 - https://play.picoctf.org/practice/challenge/426?category=1&page=1 - https://play.picoctf.org/practice/challenge/278?category=1&page=1 - https://play.picoctf.org/practice/challenge/4?category=1&page=2 - https://play.picoctf.org/practice/challenge/18?category=1&page=2 - https://play.picoctf.org/practice/challenge/161?category=1&page=2 - https://play.picoctf.org/practice/challenge/427?category=1&page=1 - https://play.picoctf.org/practice/challenge/349?category=1&page=3 ### Cookie - https://play.picoctf.org/practice/challenge/469?category=1&page=1 - https://play.picoctf.org/practice/challenge/46?category=1&page=2 - https://play.picoctf.org/practice/challenge/173?category=1&page=1 --- ## References - https://slides.com/ioker - https://slides.com/jellyyfish - https://www.ithome.com.tw/news/102969 - https://ctf-wiki.org/zh-tw/ - https://hackmd.io/@ntouind/ctf-intro - https://medium.com/appworks-school/網頁新手入門-初探網頁架構和前後端語言-a88a5dc86ee3 - https://hackmd.io/@nisra/B1SrsmrJY - https://developer.mozilla.org/zh-TW/docs/Web/HTTP/Reference/Status - https://web4theme.com/article/chrome%E7%80%8F%E8%A6%BD%E5%99%A8f12%E7%B6%B2%E9%A0%81%E9%96%8B%E7%99%BC%E5%B7%A5%E5%85%B7%E6%95%99%E5%AD%B8.html
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up