摘要:SSRF (Server-Side Request Forgery,服务器端请求伪造)是指由攻击者构造请求,然后利用服务器的漏洞以服务端的身份向内网发送请求对内网发起攻击。

本文分享自华为云社区《GaussDB(DWS)安全测试之SSRF漏洞》,作者: ACBD。

1. 什么是SSRF漏洞

SSRF (Server-Side Request Forgery,服务器端请求伪造)是指由攻击者构造请求,然后利用服务器的漏洞以服务端的身份向内网发送请求对内网发起攻击。一般情况下,SSRF攻击的目标是外网无法访问的内部系统,因为请求是服务端发起的,所以服务端就能请求到与其网络通畅而与外网隔离的内网系统。

SSRF漏洞的形成大多是因为服务端可以从其他服务器获取数据,但没有对服务端的请求做校验,导致攻击者通过服务端向服务器发送事先构造好的请求,攻击者把存在漏洞的服务器作为跳板,从而达到访问内网服务器的目的。

如下图所示,服务器A存在SSRF漏洞可被攻击者访问,内网中的其他服务器不能被攻击者直接访问,攻击者就可以向服务器A发送请求,服务器A再向内部服务器发送请求,内部服务器返回数据给服务器A,服务器A再将内部服务器的响应数据返回给攻击者,服务器A作为中间人被攻击者利用,从而达到攻击者的目的。

2. SSRF漏洞常见攻击类型

2.1 本地敏感数据窃取

利用file协议可以访问Web本地文件。如下图所示,在url后面拼接本地服务器文件地址(提前在C:\Users\Public下创建一个文件test.txt,写入内容“This is a test for SSRF!”),即可读取本地文件内容。

2.2 端口探测

在我们利用SSRF漏洞去攻击内网服务器时,并不知道内网中有什么样的应用和IP,也不知道开放了什么端口以及端口对应的服务,此时我们可以利用SSRF漏洞先对内网做IP+端口的扫描。端口的开放、关闭状态不同,响应的返回时间也会有差别,据此就可以判断端口的开放状态。

如下图所示,不同的端口响应时间不同,如果端口的响应时间明显少于其他端口,则该端口很有可能是开放状态。

3. SSRF攻击总结

3.1 SSRF攻击测试思路

SSRF漏洞挖掘一般有两种思路,一种是黑盒的方法,另一种是白盒的方法。

黑盒的方法是找到所有调用外部资源的场景,进行漏洞排查,主要排查点包括

  • 图片加载下载
  • 社交分享功能
  • 文章收藏功能
  • 网站采集
  • 未公开的api接口
  • 从远程服务器请求资源

白盒的方法是从项目支持的网络协议、项目中使用的发起网络请求的类和API以及访问地址中是否有外部可控的变量三个方面进行排查。常见的协议有file、ftp、http、https等,关注能够利用上述协议发起网络请求的类,然后关注传入的变量是否外部可控,如果外部可控则可能存在问题。

3.2 常见的防护措施

  • 网络层面,在URL中过滤掉内网IP,如localhost等。
  • 应用层面,过滤掉不常用且有危险的协议,对返回的内容及报错信息做好处理避免泄露敏感信息,以及对内部访问做二次认证等。

点击关注,第一时间了解华为云新鲜技术~

数仓安全测试之SSRF漏洞的更多相关文章

  1. ssrf漏洞随笔

    一.ssrf漏洞定义 SSRF漏洞:SSRF是一 种由攻击者构造请求,由服务端发起请求的安全漏洞.一般情况下,ssrf攻击的目标是外网无法访问的内部系统 SSRF漏洞( 服务器端请求伪造 )也被称为跨 ...

  2. 【CDH数仓】Day02:业务数仓搭建、Kerberos安全认证+Sentry权限管理、集群性能测试及资源管理、邮件报警、数据备份、节点添加删除、CDH的卸载

    五.业务数仓搭建 1.业务数据生成 建库建表gmall 需求:生成日期2019年2月10日数据.订单1000个.用户200个.商品sku300个.删除原始数据. CALL init_data('201 ...

  3. WebLogic SSRF 漏洞 (简要翻译)

    [Ref]http://blog.gdssecurity.com/labs/2015/3/30/weblogic-ssrf-and-xss-cve-2014-4241-cve-2014-4210-cv ...

  4. SSRF漏洞总结

    SSRF漏洞:(服务端请求伪造)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问的内部系统.(正是因为它是由服务端发起的,所以它能够请求到与它相连而 ...

  5. 浅谈SSRF漏洞

    SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF是要目标网站 ...

  6. SSRF漏洞挖掘经验

    SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问 ...

  7. SSRF漏洞浅析

    大部分web应用都提供了从其他的服务器上获取数据的功能,如使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等.如果服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与 ...

  8. weblogic系列漏洞整理 -- 5. weblogic SSRF 漏洞 UDDI Explorer对外开放 (CVE-2014-4210)

    目录 五. weblogic SSRF 漏洞 UDDI Explorer对外开放 (CVE-2014-4210) 1. 利用过程 2. 修复建议 一.weblogic安装 http://www.cnb ...

  9. 数仓1.4 |业务数仓搭建| 拉链表| Presto

    电商业务及数据结构 SKU库存量,剩余多少SPU商品聚集的最小单位,,,这类商品的抽象,提取公共的内容 订单表:周期性状态变化(order_info) id 订单编号 total_amount 订单金 ...

  10. 数仓1.1 分层| ODS& DWD层

    数仓分层 ODS:Operation Data Store原始数据 DWD(数据清洗/DWI) data warehouse detail数据明细详情,去除空值,脏数据,超过极限范围的明细解析具体表 ...

随机推荐

  1. Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法

    Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,此处测试代码如下,这里使用add方法: 1 public class main { 2 public static vo ...

  2. Memcached的基本操作

    一.Memcache使用场景1.非持久化存储:对数据存储要求不高2.分布式存储:不适合单机使用3.key/value存储:格式简单,不支持list,array数据格式二.系统类$m=new Memca ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (124)-- 算法导论10.5 5题

    五.用go语言,给定一个n结点的二叉树,写出一个 O(n)时间的非递归过程,将该树每个结点的关键字输出.要求除该树本身的存储空间外只能使用固定量的额外存储空间,且在过程中不得修改该树,即使是暂时的修改 ...

  4. PoW、PoS、DPoS和PBFT简介

    1. 概览 PoW(工作量证明).PoS(权益证明).DPoS(委托权益证明)和PBFT(拜占庭容错)是区块链和分布式系统领域中常见的共识算法.下面将详细介绍这些共识算法的原理和特点: PoW(工作量 ...

  5. 深入理解maven构建生命周期和各种plugin插件(转)

    https://blog.csdn.net/zhaojianting/article/details/80321488 本博文不会长篇大论的讨论生命周期的概念,而是从各种plugin的实际功能和应用出 ...

  6. 暴力+DP:买卖股票的最佳时机

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润. 注意:你不能在买入股票前卖出股票. ...

  7. AdaBoost算法解密:从基础到应用的全面解析

    本文全面而深入地探讨了AdaBoost算法,从其基础概念和原理到Python实战应用.文章不仅详细解析了AdaBoost的优缺点,还通过实例展示了如何在Python中实现该算法. 关注TechLead ...

  8. [GDOIpj221D] 小学生计数题

    第四题 小学生计数题 提交文件: counting.cpp 输入文件: counting.in 输出文件: counting.out 时间空间限制: 1 秒, 256 MB 作为 GDOI 的组题人, ...

  9. VUE2.0 学习 第一组

    本笔记主要参考菜鸟教程和官方文档编写. 1. 对于Vue2.0来说每个vue应用都需要实例化vue来实现. var vm = new Vue({ // 选项 }) 2.首先,DOM是一种api,它可以 ...

  10. 使用create-vue创建vue3项目

    create-vue是vue3新的脚手架搭建项目工具,底层构建工具使用vite,而不是vue-cli的webpack. 但不是说你不能用以前的vue create命令来创建vue3项目,你完全可以用v ...