:::info # Web II 講師:che 時間:8/26 13:30~16:30 課程簡報: https://docs.google.com/presentation/d/1KfJo2yVVGj7q2AMU_wPLUXQn3_bSu8UShKqsf4w_oyw/edit?usp=sharing --- ## **Download & Unzip** DVWA+kali VM: https://drive.google.com/drive/folders/1BEc3iNEnhwbFsiP2Ja-zerbWiZhS258F?usp=drive_link ::: ## 聲明 * 本課程攻擊僅針對課程提供的 Lab 或自架 Lab 進行 * 執行攻擊前,必須確保 **有授權** ### 滲透測試基本流程 偵查/資訊蒐集 -> 列舉/掃描/識別漏洞 -> 取得權限/利用漏洞 -> 後滲透(維持權限/提權) -> 清除軌跡 -> 撰寫報告 -> 複測 本次課程著重在: 1. 資訊蒐集 - Shodan 2. 弱點掃描 - Nmap - Nikto dirb - BurpSuite 3. 弱點利用 - Exploit db ... ### OWASP TOP 10 (2021) * **A01 權限控制失效** * 允許攻擊者繞過存取控制 → 例:修改 URL 即可存取其他帳號 * **A02 加密機制失效** * 加密演算法配置錯誤以及金鑰管理不安全 → 使用弱雜湊或未加鹽 * **A03 注入式攻擊** * 提供惡意使用錯誤格式的資料可能會被解釋為命令的一部分 → SQL Injection * **A04 不安全設計** * 儲存和處理敏感資料的應用程式卻沒有設計身份驗證系統 → 系統設計上未考慮驗證 * **A05 安全設定缺陷** * 啟用不必要的應用程式或連接埠,導致向使用者公開過多資訊 → 預設帳號、未關閉不必要服務 * **A06 危險或過舊元件** * 已知漏洞未被修補,導致攻擊者可利用舊漏洞入侵系統 → 使用含漏洞的舊版套件 * **A07 認證及驗證機制失效** * 無法正確驗證身份資訊,導致攻擊者輕易登入系統竊取資料或操作 → 缺乏 MFA、弱密碼驗證 * **A08 軟體及資料完整性失效** * 攻擊者用惡意的版本替換受信任更新檔案,導致應用程式執行到惡意程式碼 → 未驗證更新完整性 * **A09 資安記錄及監控失效** * 未即時監控異常行為,導致發生攻擊時,無法偵測或追蹤來源 → 缺乏日誌與監控 * **A10 伺服端請求偽造 (SSRF)** * 未驗證使用者提供的 URL 是否安全,導致攻擊者可讓伺服器存取內部資源,甚至造成資訊洩漏 → 允許使用者輸入 URL,未驗證來源 ### 攻擊流程 OWASP TOP 10 -> 版本列舉 -> 尋找相關漏洞 -> 尋找已知漏洞 -> 挖掘相關漏洞 ## 工具 ### Shodan → 掃描公開設備 https://www.shodan.io/domain/fju.edu.tw 掃描全世界的 IP ,利用這個危險的搜尋引擎能得到 IP 位址、運行的服務、系統資訊等。 ### dirb → 網頁目錄暴力猜測 語法: `dirb <ip>` 範例: `dirb http://127.0.0.1/` ### nmap → 掃描開放服務與端口 ### exploit-db → 已知漏洞資料庫 ### sqlmap → SQL Injection 自動化工具 ### nikto → 網站漏洞掃描 ### Burp Suite → 攔截、修改 HTTP 請求 ![image](https://hackmd.io/_uploads/Hye2i5JjFel.png) ### DVWA(Damn Vulnerable Web Application) * 提供一個合法的弱點環境,進行安全測試 * 帳號密碼:`admin / password` * 難度可調整:`low / medium / high` --- ## 攻擊類型範例 ### 1. Brute Force * 攔截登入封包,送到 Intruder * 使用字典爆破帳號/密碼 * 成功判斷依據:回應長度不同 ### 2. Command Execution * 注入 OS 指令(`;`、`&&`、`|`) * ; 能夠直接執行第二個命令 * && 第一個指令成功後執行第二個 * | 第一個指令失敗後執行第二個 * Payload 範例:[https://github.com/payloadbox/command-injection-payload-list](https://github.com/payloadbox/command-injection-payload-list) ### 3. CSRF (Cross-Site Request Forgery) ![image](https://hackmd.io/_uploads/rJI4p1iYgg.png) * 誘導使用者在登入狀態下執行敏感操作 * 防禦:CSRF Token、SameSite Cookie、驗證 Referer/Origin ### 4. LFI (Local File Inclusion) * 攻擊者透過漏洞讓網站載入伺服器上的任意本地檔案,導致敏感資訊洩漏或代碼執行。 * 載入伺服器上的本地檔案 * 例:`/download.php?path=../../etc/passwd` * 透過 ```../``` 回到上一層目錄 直到抵達根目錄後,再前往 /etc/passwd 就可以拿到機敏資料 ![image](https://hackmd.io/_uploads/rJ_kAksYee.png) * 防禦:限制路徑輸入、白名單 ### 5. File Upload → RCE ![image](https://hackmd.io/_uploads/B1KHRJoKel.png) * 上傳惡意檔案(例如 `.php`)取得遠端執行權限 * 防禦:檢查檔案 MIME、限制副檔名、權限隔離 ### 6. XSS (Cross-Site Scripting) * **Reflected XSS** → 透過 URL 傳遞 Payload ![image](https://hackmd.io/_uploads/ByMiJljKxl.png) * **Stored XSS** → Payload 存進資料庫,持續觸發 * ![image](https://hackmd.io/_uploads/SyTIJgitlx.png) * 更多 XSS stored Payload: https://github.com/payloadbox/xss-payload-list * Payload 範例: ```html <script>alert('XSS')</script> <img src=x onerror=alert(1)> <svg onload=alert(1)> ``` ### 7. SQL Injection * 自動做 SQLi 的工具:`sqlmap` * 常用參數: ```bash -u <URL> # 目標網址 --cookie="..." # 模擬登入狀態 --dbs # 列出資料庫 --tamper=xxx # 使用繞過腳本 --risk=3 --level=3 ``` --- ###### tags: `2025 NISRA Enlightened` <style> .navbar-brand::after { content: " × NISRA"; } </style>