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

服务器端请求伪造(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

http://www.kler.cn/a/322904.html

相关文章:

  • 从建立TRUST到实现FAIR:可持续海洋经济的数据管理
  • 性能高于Transformer模型1.7-2倍,彩云科技发布基于DCFormer架构通用大模型云锦天章
  • hive中map_concat函数介绍
  • 30-集群Backup Restore
  • 移除元素(leetcode 27)
  • 如何在 Ubuntu 上配置 Kotlin 应用环境 ?
  • 【PyTorch】Tensor(张量)介绍
  • 对比学习训练是如何进行的
  • 如何向远程仓库上传项目
  • ThreeJs绘制圆柱体
  • 基于FreeRTOS的STM32多功能手表设计
  • openEuler 20.03,22.03 一键部署Oracle21c zip
  • 【ArcGIS Pro实操第三期】多模式道路网构建(Multi-model road network construction)原理及实操案例
  • RHCSA认证-Linux(RHel9)-Linux入门
  • 【STM32】SPI回顾
  • SpinalHDL之语义(Semantic)(二)
  • 基于STM32的智能家居交互终端:使用FreeRTOS与MQTT协议的流程设计
  • 自然语言处理(jieba库分词)
  • AI技术在爱奇艺视频搜索中的应用
  • 代理模式简介:静态代理VS与动态代理
  • 硬件设计基础之闲聊千兆以太网
  • 设计模式-PIMPL 模式
  • 【Webpack】publicPath
  • STM32F407ZGT6配置can信号
  • 游戏服务器如何有效地实现不同游戏模式和规则?
  • git clone或repo init 时报错:fatal: 协议错误:错误的行长度 xxx