SSRF之基础篇

SSRF

前言

关于内网和外网的区别:
https://zhuanlan.zhihu.com/p/147282153

对于php伪协议的详解

php伪协议

简介:

SSRF,Server-Side Request Forgery,服务端请求伪造,是一种由攻击者构造形成由服务器端发起请求的一个漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统。漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制

https://ctf-wiki.org/web/ssrf/

工具

SSRFmap
还有gopherus

漏洞产生的相关函数

1.file_get_contents:按照文件路径输出文件内容
在伪协议中常用,php://input,data://

<?php
if (isset($_POST['url'])) {
   
    
    $content = file_get_contents($_POST['url']); 
    $filename ='./images/'.rand().';img1.jpg'; 
    file_put_contents($filename, $content); 
    echo $_POST['url']; 
    $img = "<img src=\"".$filename."\"/>"; 
}
echo $img;
?>

这段代码使用 file_get_contents 函数从用户指定的 URL 获取图片。然后把它用一个随机文件名保存在硬盘上,并展示给用户。
2.fsockopen()

fsockopen — 打开一个网络连接或者一个Unix套接字连接
说明
fsockopen(
    string $hostname,
    int $port = -1,
    int &$errno = ?,
    string &$errstr = ?,
    float $timeout = ini_get("default_socket_timeout")
): resource
返回值:
fsockopen()将返回一个文件句柄,之后可以被其他文件类函数调用(例如:fgets()fgetss()fwrite(
03-08
### SSRF漏洞原理 服务器端请求伪造(SSRF)是一种Web安全漏洞,允许攻击者诱导服务器端应用程序向攻击者选择的任意域发出HTTP请求[^2]。这种类型的攻击通常发生在当应用接受来自用户的输入并使用该输入来构建用于发起网络请求的URL时。 #### 常见场景与影响 - **内部服务访问**:由于服务器可能位于防火墙后面,拥有对内网资源的访问权限,因此通过SSRF可以绕过外部网络限制,获取本应无法触及的数据或接口。 - **云元数据泄露**:许多云计算平台提供可通过特定IP地址(如`169.254.169.254`)访问的服务实例配置信息,这成为了一种常见的SSRF目标。 ```python import requests def fetch_data(url): response = requests.get(url) # 如果url由用户控制,则存在SSRF风险 return response.text ``` 上述代码片段展示了潜在的风险点——如果`fetch_data()`函数中的参数`url`是由未经验证的用户输入提供的,那么就可能存在SSRF漏洞[^1]。 ### 防御措施 为了防止SSRF的发生,建议采取以下策略: - **白名单机制**:仅允许访问预定义的安全域名列表内的资源,拒绝其他所有请求。 - **协议限制**:确保只支持必要的协议(通常是HTTP/HTTPS),阻止FTP或其他不常用协议的调用。 - **相对路径处理**:对于需要动态生成的目标链接,考虑采用相对路径而非绝对路径的方式实现功能需求。 - **响应内容过滤**:即使执行了对外部系统的查询操作,在返回给前端之前也要仔细审查和净化接收到的信息,以防其中含有恶意载荷。 - **最小化权限原则**:运行应用程序的服务账户应当遵循最低特权原则,减少因遭受此类攻击而导致更大范围损害的可能性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值