服务端请求伪造(SSRF)指攻击者诱导服务器发起任意网络请求,进而探测内网服务或窃取云厂商元数据凭证。
一、典型攻击目标
- 云元数据服务:
http://169.254.169.254/latest/meta-data/ - 内网管理面板:
http://10.0.0.1/admin - 本地回环服务:
http://127.0.0.1:6379
二、防御要点
python
import ipaddress
from urllib.parse import urlparse
def is_safe_url(url: str) -> bool:
host = urlparse(url).hostname
try:
ip = ipaddress.ip_address(host)
except ValueError:
return False
return not (ip.is_private or ip.is_loopback or ip.is_link_local)除 IP 黑名单外,还应强制使用白名单域名、禁用非 HTTP 协议(如 file://、gopher://),并在云环境启用 IMDSv2 令牌机制。