SSRF漏洞复现
迪丽瓦拉
2025-05-28 15:17:20
0

目录

  • 介绍
    • 简介(pikachu)
    • 成因
    • 原理
    • 寻找方法
    • 用途
    • 绕过
  • 实战
    • pikachu
      • ssrf(curl)
      • SSRF(file_get_content)

介绍

简介(pikachu)

SSRF(Server-Side Request Forgery:服务器端请求伪造)

一般都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
服务器端的验证没有对其请求获取图片的参数做出严格的过滤以及限制,导致网站可以从其他服务器的获取数据
一般来说SSRF是可以探测内网端口开放信息

使用这些函数不会有SSRF漏洞file_get_contents()、fsockopen()、curl_exec()

成因

ssrf形成的原因大都是服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从制定url地址获取网页文本内容。加载指定地址的图片,文档等等

  • A网站,所有人可以访问的外网。B网站是他们内网,普通用户只可以访问a网站,不能访问b网站。但是我们可以通过a网站做中间人,访问b网站,达到攻击b网站的需求。正常用户访问网站:
    • 1.输入url
    • 2.发送请求
    • A服务器接受请求(没有过滤),并处理–>返回用户响应

在这里插入图片描述

  • 在哪里产生的ssrf漏洞呢?
  • 在服务器端的验证没有对其请求获取图片的参数作出严格过滤以及限制,导致A网站可以从其他服务器获取数据

原理

file_get_contents:
SRF漏洞就是通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以他的身份来访问其他服务器的ssrf攻击可能存在任何语言编写的应用,我们通过一些php实现的代码来作为样例分析。代码的大部分来自于真实的应用源码。

寻找方法

  • 通过url地址分享网页内容
  • 转码服务
    • 通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览:由于手机屏幕大小的关系,直接浏览网页内容的时候会造成许多不便,因此有些公司提供了转码功能,把网页内容通过相关手段转为适合手机屏幕浏览的样式。例如百度、腾讯、搜狗等公司都有提供在线转码服务。
  • 在线翻译
  • 图片加载与下载:通过url地址加载或下载图片
  • 图片、文章收藏功能
  • 未公开的api实现以及其它调用url功能
  • 从url关键字中寻找 share、wap、url、src、 link、source 、target、u 、display 、sourceURl 、imageURL 、domain
  • 所有通过调取外部资源的参数都有可能存在ssrf

用途

可以对外网、内网web应用进行指纹识别、通过访问默认文件实现
攻击内外网的web应用。主要是使用get参数就可以实现的攻击(比如struts、sqli等)
利用file协议读取本地文件

绕过

  • 常见的绕过方式

1.利用解析URL出现的问题
- 限制为http://www.xxx.com 域名时(利用@)
可以尝试采用http基本身份认证的方式绕过
如:http://www.aaa.com@www.bbb.com@www.ccc.com,在对@解析域名中,不同的处理函数存在处理差异
在PHP的parse_url中会识别www.ccc.com,而libcurl则识别为www.bbb.com。

2.采用短网址绕过

比如百度短地址https://dwz.cn/

3.采用进制转换

127.0.0.1八进制:0177.0.0.1。十六进制:0x7f.0.0.1。十进制:2130706433.

实战

pikachu

ssrf(curl)

在这里插入图片描述
在这里插入图片描述
输入baidu.com
在这里插入图片描述
他就会把百度的搜索框调出来
继续试试校园网
在这里插入图片描述
点击here进入了官网
在这里插入图片描述

SSRF(file_get_content)

这里再读一首诗
在这里插入图片描述
查看源码,发现有一个这样的函数。这个函数可以对本地文件进行读取,也可以对远程文件进行读取
在这里插入图片描述
一样的,这里我们也可以将百度搬过来。但是这个php配置文件说了读取源码,那我们复制打开试试
在这里插入图片描述
复制
在这里插入图片描述
在这里插入图片描述
解码

$ACTIVE = array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','active open','active','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
}$PIKA_ROOT_DIR =  "../../";
include_once $PIKA_ROOT_DIR.'header.php';
  • 概述
SSRF(Server-Side Request Forgery:æœåŠ¡å™¨ç«¯è¯·æ±‚ä¼ªé€ )

å ¶å½¢æˆçš„åŽŸå› å¤§éƒ½æ˜¯ç”±äºŽæœåŠ¡ç«¯æä¾›äº†ä»Žå ¶ä»–æœåŠ¡å™¨åº”ç”¨èŽ·å–æ•°æ®çš„åŠŸèƒ½,ä½†åˆæ²¡æœ‰å¯¹ç›®æ ‡åœ°å€åšä¸¥æ ¼è¿‡æ»¤ä¸Žé™åˆ¶

å¯¼è‡´æ”»å‡»è€ å¯ä»¥ä¼ å ¥ä»»æ„çš„åœ°å€æ¥è®©åŽç«¯æœåŠ¡å™¨å¯¹å ¶å‘èµ·è¯·æ±‚,å¹¶è¿”å›žå¯¹è¯¥ç›®æ ‡åœ°å€è¯·æ±‚çš„æ•°æ®

数据流:æ”»å‡»è€ ----->服务器---->ç›®æ ‡åœ°å€

æ ¹æ®åŽå°ä½¿ç”¨çš„å‡½æ•°çš„ä¸åŒ,å¯¹åº”çš„å½±å“å’Œåˆ©ç”¨æ–¹æ³•åˆæœ‰ä¸ä¸€æ ·
PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec()

如果一定要通过后台服务器远程去对用户指定("æˆ–è€ é¢„åŸ‹åœ¨å‰ç«¯çš„è¯·æ±‚")的地址进行资源请求,åˆ™è¯·åšå¥½ç›®æ ‡åœ°å€çš„è¿‡æ»¤ã€‚

ä½ å¯ä»¥æ ¹æ®"SSRF"里面的项目来搞懂问题的原å›
?>

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...