服务器端请求伪造(SSRF)漏洞解析

免责申明

        本文仅是用于学习检测自己搭建的靶场环境有关SSRF的原理和攻击实验,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法规内容【学法时习之丨网络安全在身边一图了解网络安全法_中央网络安全和信息化委员会办公室】 如您继续阅读该文章即表明您默认遵守该内容。

一、SSRF介绍

1.1、SSRF简介

        SSRF(Server-Side Request Forgery【服务器端请求伪造】)是一种 Web 安全漏洞,它允许攻击者引导服务器端web程序发起一些意外的请求内容。

        典型的SSRF攻击目标是从外网无法访问的内部系统(也就是说,SSRF攻击是通过连接外网的Web服务器与它相连而与外网隔离的内部服务器或系统)。

1.2、SSRF产生原理 

        SSRF形成的原因大部分是由于该连通外网的服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。利用该连通外网服务器端存在缺陷的web程序作为代理攻击远程和本地的服务器。
 

二、SSRF漏洞

2.1、SSRF漏洞产生的位置

1、内容分享链接

2、图片、文章、视频的收藏功能

        图片、文章、视频收藏中的内容就类似于分享功能中获取URL地址中title以及文本的内容作为显示,目的还是为了更好的用户体验。

3、从URL关键字中寻找

# 可利用浏览器查找如下这些常见的SSRF关键字
share
wap
url
link
src
source
target
u 
display
sourceURl
imageURL
domain

总结起来就是:所有目标服务器会从自身发起请求的功能点,且我们可以控制地址的参数,都可能造成SSRF漏洞。

2.2、产生SSRF漏洞的函数以PHP为例

任何语言编写的应用都可能存在SSRF漏洞,本文以PHP为例进行说明:

PHP中可能存在SSRF漏洞的函数
序号 php中可能存在SSRF漏洞的函数 说明
1 file_get_contents 将整个文件读入一个字符串中
2 file_put_contents 将数据写入指定路径的文件中保存
3 fsockopen 获取用户指定的url数据(文件或者html)。这个函数会使用socket跟服务器建立tcp连接,传输原始数据
4 curl_exec curl一个用于发送和接收 HTTP 请求的库。它支持各种协议和功能,比如HTTP、HTTPS、FTP、SMTP等。利用 cURL 可以实现与 Web 服务器进行通信、获取远程数据等操作【curl_exec()函数用于执行一个 cURL 请求,并返回请求的结果】

2.3、SSRF漏洞的危害

        SSRF主要是用来进行内网信息收集(如:内网有哪些主机是存活的,有哪些端口是开放的,运行了哪些应用和服务)。

SSRF漏洞的危害
序号 SSRF漏洞的危害
1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/884322.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

欺诈文本分类检测(十七):支持分类原因训练

1. 引言 前文数据校正与增强进行了数据增强,本文将使用增强后的数据对模型进行进一步训练,以便得到能同时预测出分类标签、欺诈者、分类原因多个信息的模型。 为此,我们需要对整个训练过程进行调整,包括: 交叉训练逻…

3-1.Android Fragment 之创建 Fragment

Fragment Fragment 可以视为 Activity 的一个片段,它具有自己的生命周期和接收事件的能力,它有以下特点 Fragment 依赖于 Activity,不能独立存在,Fragment 的生命周期受 Activity 的生命周期影响 Fragment 将 Activity 的 UI 和…

信安 实验1 用Wireshark分析典型TCP/IP体系中的协议

我发现了有些人喜欢静静看博客不聊天呐, 但是ta会点赞。 这样的人呢帅气低调有内涵, 美丽大方很优雅。 说的就是你, 不用再怀疑哦 实验1 用Wireshark分析典型TCP/IP体系中的协议 实验目的 通过Wireshark软件分析典型网络协议数据包&a…

C++深入学习string类成员函数(3):访问与修饰

引言 在 C 中,std::string 提供了丰富的成员函数来访问和修改字符串中的字符。通过这些函数,程序员可以灵活地处理字符串中的各个元素,无论是读取特定位置的字符,还是修改字符串的内容。此外,std::string 类还确保了访…

FileZilla Server 黑白单移除

我使用FileZilla Server 搭建了一个FTP服务在内网使用,主要用于做数据备份的。 有一台服务器一直可以正常连接,突然有一天不能连接了。一开始我以为是FTP服务器出问题了,就一直没管。后来我测试了一下其他IP都可以正常连接FTP服务器&#xff…

STM32嵌入式编程学习到提高:【4】UART串口打印

------------------------------------------------------------------------------------------------------------------------- 工程文件:放在百度云盘里,需要的自行下载!!! 链接: https://pan.baidu.com/s/14gRne…

Gartner 报告解读(二)| Open Telemetry可观测性解读与使用建议

上期跟大家解读了Gartner 成熟度曲线报告,主要分享了影响中国IT使用的4大因素--自主可控计划、AI发展趋势影响、降本增效、IT基础设施现代化程度。新来的朋友点这里,一键了解具体内容。 Gartner 成熟度曲线报告解读(一)| 2024中国…

Apifox 9月更新|「动态值」全新升级、跨团队引用接口和测试场景、测试报告交互优化

Apifox 新版本上线啦!!! 看看本次版本更新主要涵盖的重点内容,有没有你所关注的功能特性: 「动态值」全新升级 更强大、更灵活的数据模拟能力 支持智能代码补全动态值 测试报告交互优化 支持跨团队引用接口和测试场…

Unity图形用户界面!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。(万字解析)

Unity 3D GUI 简介 游戏开发过程中,开发人员往往会通过制作大量的图形用户界面( Graphical User Interface,GUI )来增强游戏与玩家的交互性。 Unity 3D 中的图形系统分为 OnGUI、NGUI、UGUI等,这些类型的图形系统内容…

Django 数据库配置以及字段设置详解

配置PostGre 要在 Django 中配置连接 PostgreSQL 数据库,并创建一个包含“使用人”和“车牌号”等字段的 Car 表 1. 配置 PostgreSQL 数据库连接 首先,在 Django 项目的 settings.py 中配置 PostgreSQL 连接。 修改 settings.py 文件: …

数据定义语言CREATE的应用

新书速览|SQL Server 2022从入门到精通:视频教学超值版_sql server 2022 出版社-CSDN博客 《SQL Server 2022从入门到精通(视频教学超值版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) SQL Se…

【Python】1.初始Python--打开Python的大门

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…

Java Web —— 第十天(SpringBoot原理)

SpringBoot框架之所以使用起来更简单更快捷,是因为SpringBoot框架底层提供了两个非常重要的 功能:一个是起步依赖,一个是自动配置。 通过SpringBoot所提供的起步依赖,就可以大大的简化pom文件当中依赖的配置,从而解决…

游戏开发2025年最新版——八股文面试题(unity,虚幻,cocos都适用)

1.静态合批与动态合批的原理是什么?有什么限制条件?为什么?对CPU和GPU产生的影响分别是什么? 原理:Unity运行时可以将一些物体进行合并,从而用一个描绘调用来渲染他们,就是一个drawcall批次。 限…

微信占用空间太大,文件清理工具来了

今天分享几个安卓手机文件清理工具。 SD女佣 安卓经典系统清理利器,一键释放存储空间,能清理手机中的垃圾文件、临时文件和无用的应用程序数据,提升设备性能并节省存储空间,内置强大的文件浏览器,支持应用管理和系统…

LeetCode讲解篇之5. 最长回文子串

文章目录 题目描述题解思路题解代码 题目描述 题目链接 题解思路 从中心点先寻找和中心点相等的左右端点,在基于左右端点进行往外扩散,直至左右端点不相等或者越界,然后左右端点这个范围内就是我们找寻的回文串,我们遍历中心点…

AI 大模型浪潮下,大龄程序员怎样转型求变,攀登技术高峰?

前言 在信息技术迅猛发展的今天,程序员作为技术的创造者和实践者,正面临前所未有的挑战。技术的迭代速度日益加快,传统项目的生命周期不断缩短。同时,人工智能(AI)尤其是大模型技术的兴起,使得…

如何调整云桌面安装的虚拟机分辨率?

如何调整云桌面安装的虚拟机分辨率? 1. 编辑GRUB配置文件2. 修改分辨率3. 更新GRUB4. 重启虚拟机 💖The Begin💖点点关注,收藏不迷路💖 在云桌面环境中,虚拟机分辨率过低且无法调整时,可以通过以…

影刀RPA实战:java结合影刀同步采购订单数据

1.实战目标 本次实战我们用java语言结合影刀,实现从自用ERP系统同步订单到旺店通中,在工作中,有时候我们的运营数据不是直接在旺店通ERP中操作,比如我们有自己的ERP,完成一些特定的内部工作后,再把数据同步…

[3]Opengl ES着色器

术语: VertexShader:顶点着色器,用来描述图形图像位置的顶点坐标; FragmentShader:片元着色器,用来给顶点指定的区域进行着色; Vertex:顶点 Texture:纹理…