[渗透测试] SSRF 服务端请求伪造

SSRF 服务端请求伪造

1. SSRF 简介

SSRF 是一种 Web 安全漏洞,允许攻击者通过服务器端发送 HTTP 请求。利用 SSRF,攻击者可以访问服务器内部的资源,比如内部网络中的服务或敏感数据。

2. SSRF 的工作原理

SSRF 攻击通常发生在服务器接受了用户输入,并将其用来生成一个请求。在没有对输入进行适当的校验和过滤的情况下,攻击者可以控制请求目标,发送恶意请求。

示例代码:
python 复制代码
import requests

def fetch_url(url):
    response = requests.get(url)
    return response.text

# 用户输入的 URL
user_input = "http://example.com"

# 直接使用用户输入生成请求
data = fetch_url(user_input)
print(data)

在上面的例子中,user_input 可以被攻击者控制,如果输入一个恶意 URL,比如内部 IP 地址或某个敏感资源的地址,服务器将会向该地址发送请求。

3. SSRF 攻击的类型

SSRF 攻击可以分为两类:

  • 普通 SSRF:攻击者直接发送 HTTP 请求到内部资源。
  • 盲 SSRF(Blind SSRF):攻击者无法直接看到响应结果,但可以通过一些侧信道获取信息。

4. SSRF 攻击的利用场景

  • 访问内部网络中的敏感服务(如数据库、Redis、内网管理后台等)。
  • 进行端口扫描,发现内部网络中的开放端口。
  • 通过读取元数据服务,获取云服务中的凭证和配置信息(如 AWS 的 EC2 元数据服务)。
  • 读取本地文件

内网应用指纹识别(httpd.conf 部署)

plain 复制代码
<Directory "c:\www\phpMyAdmin">
	#Order allow,deny
	Order deny,allow
	deny from all
	allow from 127.0.0.1
	
<Directory>

可以利用ssrf来进行攻击

http 复制代码
http://192.168.109.100/ssrf/ssrf_curl.php?url=http://127.0.0.1/phpmyadmin

5. 防御 SSRF 攻击的方法

  • 输入验证和过滤:严格限制和验证用户输入,确保只能访问允许的资源。

  • 使用白名单:仅允许访问特定的、安全的 URL 或 IP 地址。

  • 网络隔离:将内部服务与外部访问隔离,避免外部请求直接访问内部网络。

  • 最小权限原则:限制服务器和服务的访问权限,避免不必要的网络访问权限。

  • 监控和检测:实时监控服务器请求行为,检测异常请求和潜在的 SSRF 攻击。

6. 学习资源

7. 实战演练

通过一些在线的练习平台,如 Hack The Box 或者 DVWA(Damn Vulnerable Web Application),可以进行 SSRF 漏洞的实战演练,进一步加深理解和掌握防御技术。

8. SSRF挖掘

Web功能 URL关键字
分享 转码服务 在线翻译 图片加载与下载 图片、文章收藏功能 未公开的API实现 . . . share wap url link src source target u 3g display sourceURL imageURL domain . . .
相关推荐
wanhengidc5 小时前
云手机 数据网络安全防护
安全·web安全
一岁天才饺子6 小时前
XSS挑战赛实战演练
前端·网络安全·xss
专业开发者6 小时前
近距离检测功能亮点
网络·tcp/ip·安全
是喵斯特ya7 小时前
java反序列化漏洞解析+URLDNS利用链分析
java·安全
他是龙5518 小时前
第40天:JavaEE安全开发SpringBoot JWT身份鉴权与打包部署(JAR&WAR)
spring boot·安全·java-ee
测试人社区-千羽8 小时前
生物识别系统的测试安全性与漏洞防护实践
运维·人工智能·opencv·安全·数据挖掘·自动化·边缘计算
网络研究院9 小时前
2026年智能体人工智能的激增引发新的网络安全风险
网络·人工智能·安全·web安全·ai
缘友一世9 小时前
计算系统安全速成之内存布局与缓冲区溢出攻击【4】
安全·系统安全·计算机系统
Bruce_Liuxiaowei9 小时前
从系统安全角度方面看注册表项Windows NT与Windows的区别
windows·安全·系统安全