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

浅谈SSRF漏洞

SSRF漏洞是如何产生的

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,文档,等等。
上面的话说的有点抽象,然后说一下我的理解(可能有理解错误的地方,希望大佬能留言告知一下)
首先,我们要对目标网站的架构了解,脑子了要有一个架构图。比如 : A网站,是一个所有人都可以访问的外网网站,B网站是一个他们内部的OA网站。所以,我们普通用户只可以访问a网站,不能访问b网站。但是我们可以同过a网站做中间人,访问b网站,从而达到攻击b网站需求。

正常用户访问网站的流程是:
输入A网站URL --> 发送请求 --> A服务器接受请求(没有过滤),并处理 -->返回用户响应
【那网站有个请求是www.baidu,com/xxx.php?image=URL】

那么产生SSRF漏洞的环节在哪里呢?安全的网站应接收请求后,检测请求的合法性
产生的原因:服务器端的验证并没有对其请求获取图片的参数(image=)做出严格的过滤以及限制,导致A网站可以从其他服务器的获取数据

例如:
www.baidu.com/xxx.php?image=www.abc.com/1.jpg
如果我们将www.abd.com/1.jpg换为与该服务器相连的内网服务器地址会产生什么效果呢?
如果存在该内网地址就会返回1xx 2xx 之类的状态码,不存在就会其他的状态码
终极简析: SSRF漏洞就是通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以他的身份来访问其他服务器的资源

SSRF漏洞的寻找(漏洞常见出没位置):

注:个人觉得所有调外部资源的参数都有可能存在ssrf漏洞

  • 分享:通过URL地址分享网页内容
  • 转码服务
  • 在线翻译
  • 图片加载与下载:通过URL地址加载或下载图片
  • 图片、文章收藏功能
  • 未公开的api实现以及其他调用URL的功能
  • 从URL关键字中寻找
share
wap
url
link
src
source
target
u
3g
display
sourceURl
imageURL
domain
...

SSRF漏洞的验证方法:

1)因为SSRF漏洞是让服务器发送请求的安全漏洞,所以我们就可以通过抓包分析发送的请求是否是由服务器的发送的,从而来判断是否存在SSRF漏洞

2)在页面源码中查找访问的资源地址 ,如果该资源地址类型为 www.baidu.com/xxx.php?image=(地址)的就可能存在SSRF漏洞

 

相关文章:

  • 寻找隐藏在CloudFlare和Tor后的真实IP
  • 【Docker】————1、docker安全基线整理
  • 【公链安全】go-ethereum链安全审计
  • 【应急基础】Linux下进程隐藏的方法及其对抗
  • 【应急响应】Windows应急响应操作手册
  • 使用base64+gzinflate压缩编码来加密webshell
  • 社工查询网址汇总
  • Linux主机安全测评
  • EOS系统架构图解
  • 【算法】————1、冒泡排序
  • 【算法】————2、选择排序
  • 【算法】————3、插入排序
  • 【算法】————4、归并排序
  • 【算法】————5、快速排序
  • 【算法】————6、希尔排序
  • 【EOS】Cleos基础
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Fundebug计费标准解释:事件数是如何定义的?
  • Java比较器对数组,集合排序
  • Java基本数据类型之Number
  • JS专题之继承
  • Laravel 中的一个后期静态绑定
  • magento 货币换算
  • Node + FFmpeg 实现Canvas动画导出视频
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Vue UI框架库开发介绍
  • 编写高质量JavaScript代码之并发
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 网络应用优化——时延与带宽
  • 微信小程序设置上一页数据
  • 学习Vue.js的五个小例子
  • 用 Swift 编写面向协议的视图
  • 原生js练习题---第五课
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​ssh免密码登录设置及问题总结
  • ​渐进式Web应用PWA的未来
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • $L^p$ 调和函数恒为零
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (2)STL算法之元素计数
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (rabbitmq的高级特性)消息可靠性
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)php投票系统 毕业设计 121500
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (十五)使用Nexus创建Maven私服
  • (四)c52学习之旅-流水LED灯
  • (太强大了) - Linux 性能监控、测试、优化工具