iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
自我挑戰組

利用生成式AI等工具來學習資安系列 第 9

Day 9:Web 類漏洞概念與實作(XSS / SQLi / CSRF)

  • 分享至 

  • xImage
  •  

理解 XSS、SQLi、CSRF 的核心原理與攻擊流程。

在本地 lab(Juice Shop 或 DVWA/自建 Flask)測試至少一種漏洞。

能產出證據(request/response 截圖)與 5 行解題步驟。

簡明說明 + 測試 payload(僅用在本機 lab)
XSS(跨站腳本)

原理:攻擊者讓惡意 JavaScript 在受害者瀏覽器執行(回顯或儲存點)。

簡單 payload(反射 / 測試):

<script>alert('XSS')</script>
<img src=x onerror=alert(1)>

測試步驟(範例):

在輸入欄或 query 參數插入 payload,送出。

使用瀏覽器 DevTools / Burp 檢查 response 是否包含原始 payload。

若跳 alert,擷取截圖與 request/response。

SQLi(結構化查詢注入)

原理:不安全的 SQL 查詢把使用者輸入直接拼接進查詢,攻擊者可修改語意。

基本 payload(測試性):

' OR '1'='1
' UNION SELECT null, version() --

測試步驟(範例):

在 DVWA 的 SQLi 頁面輸入 1' OR '1'='1,送出。

若回傳多筆資料或顯示 DB 資訊,擷取截圖與被送出的 SQL(可用 Burp 抓包)。

(進階僅在 lab)用 sqlmap 測試自動化偵測:sqlmap -u "http://localhost/vuln?page=1" --risk=1 --level=1 --batch。

CSRF(跨站請求偽造)

原理:受害者在已登入網站時,被誘導瀏覽惡意網頁,該頁發送未授權的請求(例如轉帳)。

示範惡意表單(本機 lab 測試):

<form action="http://localhost:5000/change_email" method="POST">
  <input type="hidden" name="email" value="attacker@example.com">
  <input type="submit" value="Submit">
</form>
<script>document.forms[0].submit();</script>

測試步驟:

在受控 lab 建具備 session(登入)狀態的目標。

在另一個瀏覽器 tab 開上方表單頁面,確認是否能在不輸入密碼下變更資源。

檢查目標是否有 anti-CSRF token 或 SameSite cookie。

今天實作任務(照做)

選一項漏洞(XSS / SQLi / CSRF)在本地 lab 測試(Juice Shop、DVWA 或你自建的 Flask)。

安全提醒(重要)

僅在你有授權或自建的 lab 測試。

切勿將 payload 或攻擊執行於公網或非授權目標。

若 AI 提供高風險 exploit,務必人工審查後再執行。

今天完成 Day9:理解 XSS、SQLi 與 CSRF 原理,並在本地 lab 實作與截圖證據。使用 Burp 與 DevTools 重放請求,確認 payload 回顯與 SQL 注入行為,並擬出修復建議。接下來整理成可重現的教學報告。


上一篇
Day 8:用生成式 AI 協助解題(CTF 解題流程與 prompt 範例)
系列文
利用生成式AI等工具來學習資安9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言