SSRF基础原理(浅层面解释 + 演示)

简介: SSRF基础原理(浅层面解释 + 演示)

一、SSRF漏洞的基本概念:

SSRF--全名:Server-Side Request Forgery,汉译:服务端请求伪造,漏洞别名“借刀杀人”。

想象以下,现存在一个 Web应用,这个Web应用可以帮助我们能=爬取互联网上的其他内容,如将别处网站的照片爬取过来等等,这时我们尝试构造一个恶意的URL让它去访问,比如让它去访问 127.0.0.1,也就是本机或者是内网里的一个地址,Web应用如果按照我们的要求去访问并且把访问结果返回的话,那么此处就存在SSRF漏洞。

图示流程如下:

(1)若不存在SSRF漏洞,流程图如下:

(2)若存在SSRF漏洞,流程图如下:

更详细的关于SSRF漏洞类型、协议等内容请参考下面一片文章:

SSRF漏洞原理攻击与防御(超详细总结)


二、靶场漏洞复现(pikachu靶场):

1、SSRF(curl):

(1)curl函数造成漏洞原理:

curl 是常用的命令行工具,可以用来请求 Web 服务器。同时也支持其他协议,如FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和 RTSP,curl中也包含了用于程序开发的libcurl。

造成SSRF漏洞的根本原因是:服务端提供了从其他服务器获取数据的功能,而没有对目标地址进行限制和过滤,导致产生SSRF漏洞。

(2)curl函数实现源码:
<?php
function curl($url){
    $ch=curl_init(); // 初始化cURL会话
    curl_setopt($ch,CURLOPT_URL,$url); // 设置要访问的URL
    curl_setopt($ch,CURLOPT_HEADER, 0); // 不返回HTTP头部信息
    curl_exec($ch); // 执行cURL会话,发送请求并获取响应
    curl_close($ch); // 关闭cURL会话
}
$url=$_GET['url']; // 从GET请求中获取参数'url'的值
curl($url); // 调用curl函数,传入URL参数
?>
(3)漏洞复现:

进入靶场,页面如下图所示:

发现一句话,可点击,点击进入,页面显示如下图所示:

出现一段文字,同时我们发现URL中多出了一个参数url,分析后端代码:

通过分析后端代码,我们得知url参数被赋值给$URL,并且使用curl()函数进行请求访问,最后 echo $RES 将响应结果返回给了前端,显示在用户的页面中,这就是典型的SSRF漏洞。

我们可以对URL中的url参数进行修改来复现SSRF漏洞:

1、http协议访问本地文件:

2、file协议读取C盘下的配置文件:

3、利用curl函数打开百度:

除以上功能外,利用SSRF(curl)漏洞还可以利用dic协议扫描内网各个端口的开放情况。


2、SSRF(file_get_content):

(1)file_get_content 后端源码:

代码大体意思为:将指定URL的文件读入为一个字符串并返回前端。

(2)file_get_content()函数造成漏洞的原理:

file_get_contents函数本身是一个强大的工具,它能够读取文件或URL的内容到字符串中。然而,当这个函数与用户输入相结合时,如果未对用户输入进行适当的验证和限制,就可能允许攻击者构造特定的URL,使服务器发起对内网或互联网上其他服务器的请求。

(3)漏洞复现:

2、file协议读取C盘下的配置文件:

3、http协议读取根目录下文件:

(4)curl() 函数 和 file_get_content() 的区别:

1、curl_exec 支持更多协议,有http、https、ftp、gopher、telnet、dict、file、ldap;模拟 Cookie 登录,爬取网页;FTP 上传下载。

2、file_get_contents 只能使用 GET 方式获取数据。

相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
模型无关的局部解释(LIME)技术原理解析及多领域应用实践
在当前数据驱动的商业环境中,人工智能(AI)和机器学习(ML)已成为各行业决策的关键工具,但随之而来的是“黑盒”问题:模型内部机制难以理解,引发信任缺失、监管合规难题及伦理考量。LIME(局部可解释模型无关解释)应运而生,通过解析复杂模型的个别预测,提供清晰、可解释的结果。LIME由华盛顿大学的研究者于2016年提出,旨在解决AI模型的透明度问题。它具有模型无关性、直观解释和局部保真度等优点,在金融、医疗等领域广泛应用。LIME不仅帮助企业提升决策透明度,还促进了模型优化和监管合规,是实现可解释AI的重要工具。
104 9
|
7月前
如何用公式化思维?几个经典公式收集
如何用公式化思维?几个经典公式收集
|
2月前
|
NoSQL PHP Redis
SSRF一篇文章实战举例全面学懂
SSRF一篇文章实战举例全面学懂
44 0
|
4月前
|
网络协议 网络架构
动图 | 6张图让你秒懂“ARP中间人攻击”原理,堪称史诗级解释!
动图 | 6张图让你秒懂“ARP中间人攻击”原理,堪称史诗级解释!
204 0
|
6月前
|
传感器 存储 编解码
数码相机背后的像素秘密:静态与动态的真相
这篇文章探讨了数码摄影中“动态像素”和“静态像素”的概念。像素是图像质量的关键因素,而CCD或CMOS传感器负责将光信号转化为数字图像。RGB差值补偿算法用于恢复色彩,但牺牲了部分分辨率。所谓“动态像素”更多是营销术语,而非技术标准,它反映了拍照和录像时因硬件限制和处理需求不同而产生的差异。随着技术进步,硬件编码器的引入已显著提升视频处理能力,使得高清摄影和视频录制变得更加普遍。理解这些原理有助于消费者做出更明智的设备选择。
|
6月前
|
编解码 开发工具 git
技术心得记录:小波变换(wavelettransform)的通俗解释(一)
技术心得记录:小波变换(wavelettransform)的通俗解释(一)
55 0
|
算法 JavaScript 数据安全/隐私保护
某美动态参数对抗思路
某美动态参数对抗思路
149 0
|
前端开发 Java 关系型数据库
欢迎来到Jsp编程课时十三——分解原理:构建自己的思路,目标更好的理解对数据的增伤改查的原理和过程。
欢迎来到Jsp编程课时十三——分解原理:构建自己的思路,目标更好的理解对数据的增伤改查的原理和过程。
105 0
不适合做朋友的人有哪些逻辑特征(三)
不适合做朋友的人有哪些逻辑特征(三)
97 0

热门文章

最新文章