資安 網路安全

網站滲透資安課程學習筆記 (四)

蔡佳芸 Joy Tsai 2025/09/11 10:37:24
42

網站滲透資安課程學習筆記 (四)

主要內容:

  1. 介紹、模擬(練習)駭客攻擊工程
    - CTF
    - XSS

 

CFT :Capture The Flag(奪旗賽)

CFT 什麼?

這是資安領域的一種競賽形式,參賽者透過解題方式,找到「Flag(旗子)」來得分。
Flag 通常是一段像 FLAG{xxx} 的字串。

 

CFT 有幾種類型?

  1. Jeopardy-style(解題型)

    • 像答題比賽,每題一個小挑戰

    • 常見題目類型:

      • Web:網站漏洞、SQL Injection、XSS

      • Pwn/Exploit:程式漏洞、Buffer Overflow

      • Reverse Engineering:反編譯程式,還原演算法

      • Crypto:密碼學、加密解密題

      • Forensics:數位鑑識、流量分析、檔案隱寫

      • Misc:腦筋急轉彎、小工具題

  2. Attack-Defense(對抗型)

    • 各隊都有一台伺服器,要 防守自己的服務,同時 攻擊別人的服務 去拿 Flag。

    • 很像真實紅隊 vs 藍隊演練。

  3. 混合型

    • 結合解題和攻防。

 

CFT 是目的?

  • 學習資安技能(滲透測試、逆向、密碼學)

  • 練習團隊合作(尤其攻防賽)

  • 模擬真實駭客攻擊場景

  • 培養資安人才(很多國際賽事會挖角高手)

 

練習網站: picoctf

 

需要註冊才能使用,網站畫面如下。可以挑幾個  easy 的來看看

 

練習題一 Insp3ct0r

駭客在查找網站漏洞時,也會先爬網站的原始碼,這題就是最簡單的。

有興趣可以自己先試試看

解法:

1. 點擊 link 進入網站,沒什麼特別內容

2. 右鍵點擊查看原始碼,會發現註解裡面有 flag

3. 接著查看 MYCSS.CSS,發現也有一組flag字串

4. 查看 MYJS.JS,發現也有一組 flag 字串

5. 將三個字串組好後回填 input 



練習題二 logon

這是一個登入頁,點擊 link 進入

解法:

1. 稍微看一下畫面之後沒什麼特別的,隨便輸入帳密或是不輸入都可以登進去

但不是解答,因為沒有 flag。然後右鍵點擊查看原始碼

 

2. 發現沒什麼特別的。那還有可能是....? 

前端還有哪邊可以互動? 可以儲存資料? cookies 

打開開發者工具(Windows: F12, Macbook: command + option + I),點選應用程式(Application)

找到左邊側邊欄的 Cookies 選擇目前的所在網站

會發現有一個 admin 的 Key ,而且 value 是 False

3. 在 value 那邊,點右鍵修改值,改成 true,重新整理後

就會出現 flag,複製後回去填在 input 送出後~又完成了一題

彷彿自己像個駭客(??)

 

 

XSS:Cross-Site Scripting(跨網站指令碼攻擊)

XSS 是什麼?

它是一種前端漏洞,攻擊者能把惡意的 JavaScript 插入到網頁中,讓瀏覽器在使用者的環境中執行。

 

XSS 有幾種類型?

XSS 依「惡意程式碼怎麼進到頁面」來分類:

 

  1. 反射型(Reflected XSS)

    • 惡意 payload 在網址參數裡。

    • 使用者點擊攻擊者給的網址 → 網頁沒有過濾 → JS 被執行。

    • e.g. 

    • https://example.com?q=<script>alert(1)</script>
  2. 儲存型(Stored XSS)

    • 惡意 payload 被存到資料庫。

    • 每次有人讀取該內容(留言、暱稱、文章)時就觸發。

    • 影響範圍最大。

  3. DOM 型(DOM-based XSS)

    • 前端 JavaScript 自己處理資料時沒過濾。

    • 直接在瀏覽器端操作 DOM,把惡意字串當成 HTML/JS 插入。

    • e.g. 

    • document.body.innerHTML = location.hash

 

練習網站:我是服務器

這是一個 XSS 攻防靶場,github

有各種關卡可以練習,用來進行語法注入,從上到下是簡單到困難,後面關卡會加入文字過濾、伺服器過濾

可以看到有 input code, html, server code

input code: 我們要注入的程式碼

server code: server 端執行的方法

 

 

練習題一 0x00

題目是要 alert 1 ,可以看出沒有做任何的過濾,答案就是

解法:

想一想..................

3....

2....

1....

0.5.....

0......

<script>alert('1')</script>

成功畫面如下

 

 

練習題二 0x01

題目是用 textarea,可以看到  server code 那邊是將 input 塞在 textarea 裡面

解法:

想一想..................

3....

2....

1....

0.5.....

0......

先把 textarea 語法閉合之後就可以寫入 script

</textarea><script>alert(1)</script>

 

練習題三 0x02

題目是用 input,可以看到  server code 那邊是將 input value 塞在 input 裡面

解法:

想一想..................

3....

2....

1....

0.5.....

0......

跟上題一樣,先閉合 input 

"input><script>alert(1)</script>

 

綜合練習

練習網站: Hack This Site

免費、安全、合法的線上平台,主要供人們練習和擴展他們的道德駭客(ethical hacking)技能,提供豐富的挑戰與 CTF 賽題(Capture The Flag 模式)

登入後如下,可以從 basic / javascript 題目開始

 

練習題一 Basic Level 1

解法:

想一想..................

3....

2....

1....

0.5.....

0......

可以先想想剛才做的一些練習題的第一步做了什麼

駭客在看這個網站時第一步要做什麼?

 

1. 沒錯就是查看原始碼。點擊右鍵,打開開發者工具,答案便呼之欲出,藏在註解中

 

 

心得

練習這些滿有趣的,而且可以增加一些關於 XSS 的實務知識與技巧

建議有興趣的都可以玩玩看!網路上都找得到解答

蔡佳芸 Joy Tsai