一、CSRF(跨站請求偽造)攻擊全解
攻擊原理示意圖
受害者瀏覽器
├── 已登錄銀行網站(Cookie存活)
└── 訪問惡意網站執行:<img src="http://bank.com/transfer?to=hacker&amount=1000000">
核心技術要點
-
信任濫用機制:
- 利用瀏覽器自動攜帶Cookie的特性,偽造已認證用戶的HTTP請求(GET/POST均可)
- 經典攻擊鏈:
誘導點擊 → 攜帶身份Cookie → 執行敏感操作
-
繞過同源策略的技巧:
<!-- 表單自動提交 --> <form action="http://api/password/change" method="POST"><input type="hidden" name="new_password" value="hacked"> </form> <script>document.forms[0].submit();</script>
-
高級攻擊變種:
- JSON CSRF:通過
<script>
標簽觸發JSONP接口 - CORS濫用:利用寬松的CORS配置發送跨域請求
- JSON CSRF:通過
二、SSRF(服務端請求偽造)攻擊深潛
內網滲透典型場景
攻擊者 --> 可控服務器請求參數(如URL=xxx)↓云服務器元數據(http://169.254.169.254/latest/meta-data)↓獲取臨時密鑰 → 接管云主機
協議利用與繞過技巧
協議 | 攻擊用途 | 示例Payload |
---|---|---|
file:// | 讀取服務器本地文件 | url=file:///etc/passwd |
dict:// | 端口掃描與服務指紋識別 | url=dict://127.0.0.1:6379/info |
gopher:// | 構造任意TCP協議包 | 發送Redis未授權訪問指令 |
云環境SSRF自動化工具
# 使用SSRFmap進行自動化探測
python3 ssrfmap.py -r data.txt -p url -m cloud
三、雙S攻擊核心差異對照表
維度 | CSRF | SSRF |
---|---|---|
攻擊媒介 | 利用用戶瀏覽器 | 利用服務端網絡權限 |
目標系統 | 第三方Web應用 | 服務器所在內網/云環境 |
數據流向 | 客戶端 → 目標站點 | 服務端 → 內部系統 |
檢測工具 | Burp Suite CSRF PoC Generator | Gopherus + Wireshark |
四、企業級防御方案
CSRF立體化防御
-
令牌動態化(Spring Security示例)
// 生成Token String csrfToken = UUID.randomUUID().toString(); request.getSession().setAttribute("csrfToken", csrfToken);// 驗證Token if (!request.getParameter("csrfToken").equals(session.getAttribute("csrfToken"))) {throw new CsrfException(); }
-
SameSite Cookie策略(Nginx配置)
add_header Set-Cookie "JSESSIONID=xxx; Path=/; Secure; SameSite=Strict";
-
關鍵操作二次驗證
- 敏感操作(如轉賬)強制要求短信/郵箱驗證
SSRF深度防御體系
-
請求鏈路上鎖(Java白名單校驗)
private static final Pattern DOMAIN_WHITELIST = Pattern.compile("^(https?://)(image\.example\.com|cdn\.safe\.net)");if (!DOMAIN_WHITELIST.matcher(url).matches()) {throw new SSRFException("非法域名請求"); }
-
協議與端口管控(Linux防火墻策略)
# 禁止服務器出站訪問內網段 iptables -A OUTPUT -d 10.0.0.0/8 -j DROP iptables -A OUTPUT -d 172.16.0.0/12 -j DROP
-
云環境加固方案
- 禁用EC2元數據接口的公共訪問(AWS示例)
aws ec2 modify-instance-metadata-options --instance-id i-1234567890abcdef0 --http-tokens required
五、攻防演練實戰案例
CSRF釣魚攻擊復現
-
使用Burp Suite生成釣魚頁面:
Pro → Generate CSRF PoC → 自動生成含隱藏表單的HTML
-
誘導用戶點擊后,觀察后臺權限變更日志
SSRF內網Redis攻防
-
構造Gopher協議攻擊包:
# 使用Gopherus生成Redis未授權訪問Payload ./gopherus.py --exploit redis
-
通過SSRF漏洞執行
flushall
等危險指令
六、防御效果驗證工具
工具名稱 | 用途 | 使用場景 |
---|---|---|
CSRF Tester | 瀏覽器插件自動檢測CSRF漏洞 | 研發自測階段快速驗證 |
SSRF Sheriff | 自動化模糊測試SSRF潛在點 | 上線前安全掃描 |