【Web常规漏洞】SSRF服务端请求伪造漏洞

2023-11-20

文章目录

概念 —— 产生原因 ——可能存在漏洞的代码 ——漏洞分类 —— 潜在危害
漏洞利用 —— 漏洞防御 —— 漏洞绕过

概念:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种利用漏洞伪造服务器端发起请求。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。

漏洞产生原因:服务端提供从其他服务器应用获取数据的功能,但没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容、加载指定地址的图片、下载等。

可能存在SSRF漏洞的PHP代码:

函数 -
file_get_content() 把整个文件读入一个字符串中
fsockopen() 使用socket建立tcp连接传输数据
curl_exec() 建立curl会话获取数据

漏洞分类:

  1. 显示对攻击者的响应(basic):在服务器获取攻击者要求的URL后,把响应发送回攻击者。
  2. 不显示响应(blind):在服务器获取攻击者要求的URL后,不会把响应内容发送给攻击者,需要通过抓包或查看服务器日志判断是否存在服务端请求伪造漏洞。(主要证明漏洞存在:访问攻击机Web服务查看日志、DNSlog记录)

漏洞潜在危害:

  1. 扫描内网开放服务
  2. 向内部任意主机的任意端口发送payload来攻击内网服务
  3. DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
  4. 攻击内网的web应用,例如直接SQL注入、XSS攻击等
  5. 利用file、gopher、dict协议读取本地文件、执行命令等

漏洞利用:

  1. 四个常用协议:http打内网、file、gopher、dict
  2. 两个扩展协议:sftp获取ssh相关信息、tftp远程获取文件
  3. 结合redis写shell、结合php-fpm未授权访问漏洞执行命令(fastcgi)

漏洞防御:

  1. 目标ip和端口加黑:内网加黑名单(加白名单对业务不方便),限制请求的端口,比如80,443,8080,8090
  2. 方式加白:协议很多不方便枚举,只允许http协议
  3. 结果加黑:如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
  4. 结果统一:统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态。
  5. 针对绕过方式,禁止30x跳转

漏洞绕过:
限制目标ip时:采用短网址或进制转换
限制协议时:利用302跳转

参考

产生SSRF漏洞的代码

ssrf原理与实践

SSRF详细利用方式及getshell

SSRF漏洞攻击原理及防御方案

[红日安全]Web安全Day4 - SSRF实战攻防

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Web常规漏洞】SSRF服务端请求伪造漏洞 的相关文章

  • Elasticsearch 如何使用通配符进行 OR 查询

    我很难尝试使用 elasticsearch 构建查询 我想查询类似的内容 WHERE field 1 is match string OR field 2 is wildcard match string OR field 3 is fuz
  • 为什么在发出带有发布数据的请求后,PHP 中的 $_POST 数组为空

    我使用发布数据向页面 getremote php 发出发布请求 但 POST 数组似乎为空 如果有人能告诉我我做错了什么 我将不胜感激 发出请求的 JavaScript 代码是 var postdata Content Type appli
  • Yii 添加条件

    我尝试根据我的条件从表中获取行 我的代码 conditions array id gt array 148028 118508 criteria new CDbCriteria foreach conditions as key gt va
  • 无法在WordPress的functions.php中使用php fopen()函数

    我正在尝试简单地运行 fopen 函数 php 并且也尝试过test phpWordPress 模板文件 但这不起作用 如果我将 test php 文件和 csv 文件移动到主题文件夹之外的位置 那么它第一次可以工作 function cs
  • PHP 数组的最大键大小是多少?

    我正在生成关联数组 键值是 1 n 列的字符串连接 会回来咬我的钥匙有最大长度吗 如果是这样 我可能会停下来并采取不同的做法 它似乎仅受脚本内存限制的限制 快速测试后我得到了 128mb 的密钥 没问题 ini set memory lim
  • 联系表 7 根据用户选择立即发送给多个联系人

    您好 我正在 WordPress 联系表单 7 中创建联系表单 如果用户选择 全部 我想立即向多个收件人发送电子邮件 我看过这个 但似乎没有记录您是否可以一次发送给多个收件人http contactform7 com selectable
  • PHP,检查 URL 和文件是否存在?

    我为 WordPress 创建了一个插件 需要存在两个文件才能正常运行 第一个文件定义为文件系统路径 第二个文件定义为 URL 假设第一个文件是 home my site public html some folder required f
  • 字符编码失败,为什么\xBD在PHP + HTML中显示不正确

    我只是想更好地理解字符编码 所以我做了一些测试 我有一个保存为 UTF 8 的 PHP 文件 如下所示 页面本身
  • orm和pdo的区别

    我对 ORM 和 PDO 之间的区别有点困惑 PDO是一种ORM吗 根据我的理解 ORM 基本上是一种数据映射 PDO 还提供了数据库数据的抽象 PDO 和 ORM 是两个完全不同的东西 PDO 是数据库访问抽象层的具体实现 它使您能够使用
  • 选择 MYSQL 行,但将行转换为列,将列转换为行

    我想选择数据库中的所有行 但我希望它们按相反的顺序排列 意思是 我想使用第一列数据作为新实体 并将实体作为第一列 我想你明白我的意思 这是一个例子 id name marks 1 Ram 45 2 Shyam 87 to id 1 2 Na
  • 关联数组与 SplObjectStorage

    我正在编写代码来管理一组独特的对象 该代码的第一个原型使用关联数组 基本上就像我一直这样做的方式一样 然而 我也热衷于利用 PHP 的更现代版本中添加的功能 例如 SplObjectStorage 1 这样做 部分是作为一种学习经验 部分是
  • Nginx 与 phpmyadmin 登录后重定向错误

    我正在使用 nginx 设置 phpMyAdmin 我可以访问 phpMyAdminhttp localhost phpmyadmin http localhost phpmyadmin 但是 当我登录时 URL 被重定向到http loc
  • PHP 性能有多好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这是我最近看到的一篇文章的后续内容 该文章表明 PHP 性能很差 PHP 始终是瓶颈 我的服务器群 让我向您展示 PHP 整体性能 http t
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • 从php字符串中删除奇怪的字符

    这就是我现在所拥有的 将 RSS feed 绘制到 php 中 RSS feed 中的原始 xml 如下所示 Paul 8217 s Confidence 到目前为止我拥有的 php 是这样的 newtitle item gt title
  • 用 PDO 和准备好的语句替换 mysql_* 函数

    我总是做简单的连接mysql connect mysql pconnect db mysql pconnect host user pass if db echo strong Error strong Could not connect
  • 使用 jQuery 将值发送到 $_GET

    我正在使用一个 PHP 脚本 该脚本正在通过 GET 等待两个值 我正在尝试使用 jQuery 传递这两个值 而这正是我不太擅长的地方 这是我得到的代码 有人能指出我正确的方向吗 谢谢 function xrate id rating aj
  • 将 IP 地址与 IPv6 块进行比较

    我使用 PHP 将用户 IP 地址与 IP 块列表进行比较 其中大多数是 IPv4 但其中一些是 IPv6 我从用户那里获得的 IP 地址始终与 IPv4 兼容 至少我是这么假设的 我将如何比较这个 这就是我现在正在使用的 function
  • 散列 hash_hmac 时,Convert.ToChar(0) 散列结果与 PHP 中的 chr(0) 不同的字符串

    我在 PHP 中有一个字符串 它被转换为字节数组并进行哈希处理 转换为字节数组的字符串如下所示 G 字符 0 便便 我需要 C 中的等效字节数组 这样我才能得到相同的哈希值 编辑 这是完整的问题 生成的哈希值不同 PHP api secre
  • 寻求有关标记视频系统上的“相关视频”查询的建议

    好吧 我运行一个小型视频网站 在实际的视频页面上有一条与大多数视频页面 例如 YouTube 类似的 相关视频 目前我所做的就是随机获取其标签之一并查找其他视频相同的标签 毫不奇怪 这不是一个好方法 因为有些标签非常模糊 有些视频被错误标记

随机推荐

  • Objective-C中的封装、继承、多态、分类

    封装 封装最好理解了 封装是面向对象的特征之一 是对象和类概念的主要特性 封装 也就是把客观事物封装成抽象的类 并且类可以把自己的数据和方法只让可信的类或者对象操作 对不可信的进行信息隐藏 继承 面向对象编程 OOP 语言的一个主要功能就是
  • 测试工具73款

    我们将本文的软件测试工具分为4类 1 Web应用测试工具 2 网站安全测试工具 3 跨浏览器测试工具 4 移动应用测试工具 注 工具排名没有任何意义 1 Web应用测试工具 我们列出了一些在Web应用程序上执行性能 负载和压力测试的关键工具
  • 开源项目MiniWord .NET Word 操作由Word模板和数据简单、快速生成文件

    MiniWord NET Word 介绍 MiniWord NET Word模板引擎 藉由Word模板和数据简单 快速生成文件 image Getting Started 安装 nuget link https www nuget org
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2
  • vue路由器学习(个人学习笔记四)

    目录 友情提醒 第一章 路由简介 1 1 什么是路由 1 2 安装路由插件 第二章 自定义路由器 2 1 创建路由器文件index js文件 2 2 index js文件中配置路由信息 第三章 使用路由器 3 1 在main js文件中将路
  • 基于Item的协同过滤算法实践(最简单的在线电影推荐系统)

    上一篇文章 基于用户的协同过滤算法实践 中 基于用户的相似度生成推荐列表 本文将基于Item的相似度阐述 1 相似度 基于物品的协同过滤算法 简称ItemCF 给用户推荐那些和他们之前喜欢的物品相似的物品 不过ItemCF不是利用物品的内容
  • 用户权限数据转换为用户组列表(3/3) - Excel PY公式

    最近Excel圈里的大事情就是微软把PY塞进了Excel单元格 可以作为公式使用 轻松用PY做数据分析 系好安全带 老司机带你玩一把 实例需求 如下是AD用户的列表 每个用户拥有该应用程序的只读或读写权限 现在需要创建新的AD用户组 并根据
  • Source Insight4.0的安装以及配置

    安装source insight4 工具的动机 1 公司需求 2 source insight4 0工具是集开发快速以及界面美观和方便等多种优点于一个软件的编辑器 1 需要准备资料 source insight4 0的安装包 以及安装的过程
  • iOS内存详解

    堆栈 iOS内存条中有一部分是只读的 有一部分是可读可写的 我们操作的是可读可写部分 那么在这块内存当中 我们怎么划分堆和栈呢 我们可以限定死堆栈的内存空间 但是这样显然是不好的 那么可以使用相对弹性的空间 一个从上往下扩展 一个从下往上扩
  • Arthas阿里 阿尔萨斯诊断工具的学习

    以下所有内容基于Arthas的3 6 9版本 一 Arthas 基础 背景 线上诊断问题比较难复现 DEBUG等 都很痛苦 功能好处 通过JVM开放出来接口 代理功能 对JVM访问 获取JVM内存 线程 类 方法 变量等各种操作函数 并控制
  • Mysql数据库连接池的简单实现(基于C++11), 基础学完, 包教包会.

    项目技术点 C语言进行MYSQL数据库编程 无锁单例 基于STL队列加C 11新特性保证线程安全实现的生产者消费者模型 C 11多线程编程 线程间同步与互斥 基于CAS的原子整形 lambda表达式 shared ptr智能指针管理Conn
  • Pipenv:作为 Python 开发人员为什么应该使用它

    Pipenv 是一个旨在将所有打包世界中最好的东西带到 Python 世界的工具 它将 Pipfile pip 和 virtualenv 整合到一个命令中 它会自动为您的项目创建和管理虚拟环境 并在您安装 卸载包时从您的 Pipfile 添
  • 大清相国 -陈廷敬

    以前都没听说过这个人 读了读 原来是康熙时的重臣 一开始 太完美了 为民做主 不爱权 不爱财 后来 明白不能让皇帝太难堪 不能让天下百姓知道居然这么多贪官 委屈求全 最后一举将高士奇等一起干掉 狠字当头 最后 装傻退出朝廷 在家养老 一句话
  • Kubernetes笔记(六):了解控制器 —— Deployment

    Pod 容器组 是 Kubernetes 中最小的调度单元 可以通过 yaml 定义文件直接创建一个 Pod 但 Pod 本身并不具备自我恢复 self healing 功能 如果一个 Pod 所在的节点出现故障 或者调度程序自身出现问题
  • C++---区间DP---加分二叉树(每日一道算法2023.4.28)

    题目 设一个 n 个节点的二叉树 tree 的中序遍历为 1 2 3 n 其中数字 1 2 3 n 为节点编号 每个节点都有一个分数 均为正整数 记第 i 个节点的分数为 di tree 及它的每个子树都有一个加分 任一棵子树 subtre
  • hello,os

    于渊的书确实不错 先看第一章 出了个hello os 用虚拟机搞的 引导区
  • C# 如何将SPL文件转换成EMF文件

    本文主要讲述如何将SPL文件转换成EMF文件 目录 一 什么是SPL文件和EMF文件 一 SPL文件 二 EMF文件 二 文件解析 一 SPL格式 二 打开SPL文件 三 解析SPL文件 三 编程思路 一 记录EMF文件的位置和大小 二 找
  • JS对象的深复制

    JS实现对象的深复制 function cloneObject source target var list number string boolean undefined null function if target undefined
  • 区块链的安全性与去中心化特点:深入探讨区块链技术的安全性和去中心化特点

    摘要 本文将深入探讨区块链技术的两个核心特点 安全性和去中心化 区块链作为一种分布式账本技术 通过其独特的安全性和去中心化特点 在许多领域引起了广泛关注 我们将分析区块链的安全性原理和其与去中心化的关系 以及区块链技术在保护数据安全和提供信
  • 【Web常规漏洞】SSRF服务端请求伪造漏洞

    文章目录 参考 概念 产生原因 可能存在漏洞的代码 漏洞分类 潜在危害 漏洞利用 漏洞防御 漏洞绕过 概念 SSRF Server Side Request Forgery 服务器端请求伪造 是一种利用漏洞伪造服务器端发起请求 一般情况下