当前位置: 首页 > news >正文

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),服务器会返回元数据内容。

​关键元数据路径​

http://www.dtcms.com/a/303758.html

相关文章:

  • 单片机学习笔记.PWM
  • 第4章唯一ID生成器——4.5 美团点评开源方案Leaf
  • 医疗AI新基建:MCP与A2A协议的破局与前瞻
  • JVM 崩溃(Fatal Error)解决方法
  • 影刀RPA_初级课程_玩转影刀自动化_EXCEL操作自动化
  • 《C++初阶之STL》【list容器:详解 + 实现】
  • JSON解析
  • Spring IOC 基于Cglib实现含构造函数的类实例化策略
  • 循环神经网络——动手学深度学习7
  • 板凳-------Mysql cookbook学习 (十二--------7)
  • SpringBoot 的@Repository 等注解的底层实现原理
  • 智能体安全与可信AI:防护机制与伦理考量
  • SpringBoot之起步依赖
  • 【使用python中列表注意事项】
  • Windows使用Powershell自动安装SqlServer2025服务器与SSMS管理工具
  • 【自存用】mumu模拟器+mitmproxy配置
  • ADSP-21565的SigmaStudio图形化编程详解
  • Linux 完整删除 Systemd 服务的步骤
  • 递归、搜索与回溯算法核心思想解析
  • Agent常用搜索引擎Tavily使用学习
  • linux中简易云盘系统项目实战:基于 TCP协议的 Socket 通信、json数据交换、MD5文件区别与多用户文件管理实现
  • 配置daemon.json使得 Docker 容器能够使用服务器GPU【验证成功】
  • 界面控件Telerik UI for WPF 2025 Q2亮点 - 重要组件全新升级
  • 「源力觉醒 创作者计划」_文心大模型 4.5 多模态实测:开源加速 AI 普惠落地
  • VUE -- 基础知识讲解(一)
  • 从字符串中“薅出”最长子串:LeetCode 340 Swift 解法全解析
  • 分布式链路追踪详解
  • 如何用USRP捕获手机信号波形(中)手机/基站通信
  • Java面试宝典:MySQL8新特性底层原理
  • 设计模式:状态模式 State