[Python]資安應用實例-檢查封包中的敏感資訊與 HTTP 漏洞

文、意如

1.檢查未加密的 HTTP 流量中是否包含常見的敏感資訊(例如密碼)。
2.檢查伺服器響應中是否缺少關鍵的安全 Header(例如 Strict-Transport-Security)。
程式碼
from scapy.all import sniff, IP, TCP, Raw
import re
from urllib.parse import unquote

#資安工具的核心:解析封包並檢查資安問題。
def security_analysis_callback(packet):
    if IP in packet and TCP in packet:# 確保封包有 IP 層和 TCP 層
        if (packet[TCP].dport == 80) or (packet[TCP].sport == 80):#檢查 HTTP 流量 (埠號 80)
            if Raw in packet:# 檢查是否有 Raw/載荷層 (應用層數據)
                payload = packet[Raw].load.decode('utf-8', errors='ignore')
                #敏感資訊明文傳輸檢查 (例如密碼或登入資訊) ---
                if re.search(r'(password|passwd|login|pwd)=', payload, re.IGNORECASE):
                    # 找到疑似敏感資訊,發出資安警報
                    print("\n[資安工具警報] 發現 HTTP 明文傳輸敏感資料!")
                    print(f"來源IP: {packet[IP].src} -> 目的IP: {packet[IP].dst}")
                    # 使用 unquote 處理 URL 編碼的 payload,提高可讀性
                    print(f"偵測到的 Payload 片段: {unquote(payload[:100]).strip()}")
                #檢查 HTTP Header 安全漏洞 (以伺服器響應為例) ---
                if b'HTTP/1.' in packet[Raw].load and packet[TCP].sport == 80:
                    # 檢查是否缺少 HSTS (Strict-Transport-Security) Header
                    if b'Strict-Transport-Security' not in packet[Raw].load:
                        print("\n[資安工具警報] 偵測到 HTTP 響應缺少 HSTS 安全 Header!")
                        print(f"  受影響伺服器 IP: {packet[IP].src}")
                        # 這種資安檢測工具類型有助於網站安全配置評估

def start_security_tool(count=20):
   
    print("---啟動資安工具(封包嗅探器)---")
    print(f"正在擷取前 {count} 個封包進行 --資安檢測--...")
    
    # 建議只過濾 HTTP/TCP 流量以簡化結果
    # filter="port 80": 只擷取 80 埠的 TCP 流量 (HTTP)
    sniff(prn=security_analysis_callback, count=count, filter="tcp port 80")
    
    print("---封包安全分析完成---")

if __name__ == "__main__":
    start_security_tool(count=20)
    
執行結果:

為了看到警報,需要在程式運行時,在瀏覽器中故意訪問一個沒有 HTTPS (即 HTTP) 且會發送敏感資訊(例如一個簡單登入頁面的表單提交)的網站。

如網路中出現了 HTTP 流量,並且該流量缺少安全 Header 或明文傳輸了密碼,資安工具將會如以下輸出

 

一張含有 文字, 螢幕擷取畫面, 字型 的圖片

AI 產生的內容可能不正確。

 

 

 

 

 

Yiru@Studio - 關於我 - 意如