網站滲透資安課程學習筆記 (四)
網站滲透資安課程學習筆記 (四)
主要內容:
- 介紹、模擬(練習)駭客攻擊工程
- CTF
- XSS
CFT :Capture The Flag(奪旗賽)
CFT 什麼?
這是資安領域的一種競賽形式,參賽者透過解題方式,找到「Flag(旗子)」來得分。
Flag 通常是一段像 FLAG{xxx} 的字串。
CFT 有幾種類型?
-
Jeopardy-style(解題型)
-
像答題比賽,每題一個小挑戰
-
常見題目類型:
-
Web:網站漏洞、SQL Injection、XSS
-
Pwn/Exploit:程式漏洞、Buffer Overflow
-
Reverse Engineering:反編譯程式,還原演算法
-
Crypto:密碼學、加密解密題
-
Forensics:數位鑑識、流量分析、檔案隱寫
-
Misc:腦筋急轉彎、小工具題
-
Attack-Defense(對抗型)
-
各隊都有一台伺服器,要 防守自己的服務,同時 攻擊別人的服務 去拿 Flag。
-
很像真實紅隊 vs 藍隊演練。
-
混合型
-
結合解題和攻防。
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 依「惡意程式碼怎麼進到頁面」來分類:
-
反射型(Reflected XSS)
-
惡意 payload 在網址參數裡。
-
使用者點擊攻擊者給的網址 → 網頁沒有過濾 → JS 被執行。
-
e.g.
-
https://example.com?q=<script>alert(1)</script>
-
-
儲存型(Stored XSS)
-
惡意 payload 被存到資料庫。
-
每次有人讀取該內容(留言、暱稱、文章)時就觸發。
-
影響範圍最大。
-
-
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 的實務知識與技巧
建議有興趣的都可以玩玩看!網路上都找得到解答