CTF-Web学习笔记:服务端请求伪造(SSRF)篇

目录

​​引言​​

​​一、SSRF的核心原理​​

1. 什么是SSRF?

2. 漏洞成因

​​二、CTF中最常见的5类SSRF题型​​

​​1. 基础SSRF:读取本地文件​​

​​2. 内网探测:扫描内网服务​​

​​3. 云服务SSRF:窃取云厂商元数据​​

​​4. 协议绕过:利用特殊协议访问内网​​

​​5. 结合其他漏洞:SSRF+文件上传/命令执行​​

​​三、CTF实战:SSRF的“绕过与利用”技巧​​

​​技巧1:判断SSRF是否存在​​

​​技巧2:绕过URL过滤​​

​​技巧3:利用协议特性扩展攻击​​

​​技巧4:对抗WAF与入侵检测​​

​​四、CTF实战案例:一道SSRF+Redis高阶题​​

​​题目背景​​

​​解题步骤​​

​​五、总结与防御建议​​

​​对CTF选手的建议​​

​​对开发者的防御建议​​


引言​

在CTF(Capture The Flag,夺旗赛)的Web安全赛道中,​​服务端请求伪造(Server-Side Request Forgery, SSRF)​​ 是一类“低调但致命”的漏洞。它利用服务器对用户输入的URL未严格校验的缺陷,诱导服务器向内部网络(如内网IP、私有服务)发起请求,从而窃取敏感信息(如云服务器元数据、数据库密码)、攻击内网服务(如Redis、MySQL),甚至控制整个内网。

本文将结合CTF实战场景,从原理到高阶技巧,带你彻底掌握SSRF的“攻防密码”。


​一、SSRF的核心原理​

1. 什么是SSRF?

SSRF(Server-Side Request Forgery,服务端请求伪造)是攻击者通过构造恶意URL,诱导服务器向​​本地或内网资源​​发起HTTP/HTTPS请求,最终实现以下目标的攻击:

  • 读取本地文件(如/etc/passwd);
  • 访问内网服务(如http://192.168.1.100:3306);
  • 触发内网漏洞(如Redis未授权访问、FastCGI RCE)。
2. 漏洞成因

应用程序未对用户输入的​​外部URL参数​​做严格校验,直接将其作为请求目标发送给服务器。例如,一个“图片下载”接口可能接收用户提供的url参数,并通过服务器发起请求下载图片:

# 危险代码示例(Python Flask)
@app.route('/download')
def download():
    url = request.args.get('url')
    response = requests.get(url)  # 服务器直接发起用户指定的请求
    return response.content

若用户传入url=http://169.254.169.254/latest/meta-data(AWS元数据服务),服务器会返回内网敏感数据。


​二、CTF中最常见的5类SSRF题型​

​1. 基础SSRF:读取本地文件​

攻击者通过构造file://协议的URL,诱导服务器读取本地文件(如/etc/passwd/flag)。

​CTF考察方式​​:
题目提供一个下载接口(如http://target.com/download?url=file:///etc/passwd),用户输入url参数后,服务器返回文件内容。

​关键Payload​​:

http://target.com/download?url=file:///etc/passwd  # Linux本地文件
http://target.com/download?url=file:///C:/Windows/win.ini  # Windows本地文件
​2. 内网探测:扫描内网服务​

攻击者通过构造指向内网IP的URL(如http://192.168.1.1:8080),探测内网存活主机和服务端口,为后续攻击铺路。

​CTF考察方式​​:
题目提供一个“网络检测”接口(如http://target.com/probe?url=http://192.168.1.%d),需通过修改IP最后一位(如192.168.1.1192.168.1.2)扫描内网。

​关键技巧​​:

  • 内网IP范围:10.0.0.0/810.x.x.x)、172.16.0.0/12172.16.x.x~172.31.x.x)、192.168.0.0/16192.168.x.x);
  • 常见内网服务端口:80(HTTP)、3306(MySQL)、6379(Redis)、22(SSH)。
​3. 云服务SSRF:窃取云厂商元数据​

云服务器(如AWS、阿里云、腾讯云)提供​​元数据服务​​(Metadata Service),通过特定IP(如169.254.169.254)暴露实例信息(如密钥、标签、安全组)。攻击者可利用SSRF触发服务器访问这些接口,窃取云凭证。

​CTF考察方式​​:
题目提供一个“云监控”接口(如http://target.com/monitor?url=http://169.254.169.254/latest/meta-data),服务器会返回元数据内容。

​关键元数据路径​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AAA bit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值