pikachu靶场-11 SSRF漏洞

news2024/10/5 16:24:06

SSRF漏洞

概述

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

其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据

数据流:攻击者----->服务器---->目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样

PHP中下面函数的使用不当会导致SSRF:

file_get_contents()
fsockopen()
curl_exec()

如果一定要通过后台服务器远程去对用户指定(“或者预埋在前端的请求”)的地址进行资源请求,则请做好目标地址的过滤。

靶场

SSRF(curl)
image-20221213180232251

这里有一个a标签,我们点击一下看看

image-20221213180421882

image-20221213180440843

我们可以看到它传了一个URL到后台,我们可以先直接看一下源码

image-20221213180539012

我们可以看到,它这边会直接获取前端传进来的URL,然后就直接通过curl_init做了一个初始化,然后最终通过curl_exec对他进行了一个请求,然后把请求返回来的数据返回到了前端。如果这个时候我们传进来一个其他的地址会产生什么样的后果呢?我们试一下

我们在这里可以试着传一个百度

image-20221213180826658 image-20221213180910704

它就直接把百度的数据给我们显示出来了,这里并不是我们的浏览器直接去请求的百度,而是我们的浏览器把这个参数传到了后端,后端的服务器通过curl_exec这个方法去请求的百度,又把百度返回的数据返回到我们前端。

那就意味着我们可以通过SSRF这个漏洞去对后端服务器同一个网络里面的其他服务器去进行一个探测。比如我们可以通过http://127.0.0.15:22去看一下这个服务器的22号端口开着没有。这就是我们常说的SSRF可以用来打内网的原因。

curl支持很多协议,有FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE以及LDAP

SSRF(file_get_content)

image-20221213181430582

这里和上一个看着差不多,也是一个a标签

image-20221213181501507

image-20221213181516689

也是传了一个对应的地址,我们看一下源码

image-20221213181555131

其实和刚才差不多,但是这里使用的是file_get_contents这么一个函数,这个函数可以对本地的文件进行读取,也可以对远程的文件进行一个读取,他也支持很多协议,比如http,我们还是拿百度来试一下

image-20221213181801460

同样的它也能通过http把百度的资源通过后端服务器返回到前端。

读取PHP文件的源码:php://filter/read=convert.base64-encode/resource=ssrf.php

我们可以通过这个内置的php方法去读取相关的源码

image-20221213182123483

进入这个页面往下滑到最下面,我们就可以看到它就直接把我们这个文件的base64的编码返回到了前端,我们直接把这段编码去用base64解码,就能知道这个php文件对应的源码是什么了

image-20221213182222506

image-20221213182652092

SSRF这个漏洞利用的途径和方法还是很多的,主要是取决于后台用了哪一个对应的函数,我们要去研究这个对应的函数支持哪些网络协议,我们通过这些网络协议去构造相关的利用方法

SSRF这个漏洞利用的途径和方法还是很多的,主要是取决于后台用了哪一个对应的函数,我们要去研究这个对应的函数支持哪些网络协议,我们通过这些网络协议去构造相关的利用方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/86900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Allegro如何把分离的线段变成封闭连续的图形

Allegro如何把分离的线段变成封闭连续的图形 Allegeo支持把分离的线段变成封闭连续的图形,以下图为例,线段是分离的 具体操作如下 选择shape-compose shape Option选择一个层面,比如画在Board Geometry outline层 Find选择other segs 和Lines 框选图形 鼠标右击选择d…

HTML基础学习笔记合集

HTML学习笔记基础认知基本概念常用标签排版标签标题标签段落标签换行标签(单标签)水平线标签(单标签)文本格式化标签图片标签(单标签)音频标签(双标签)视频标签(双标签&a…

K_A08_013 基于 STM32等单片机驱动大功率MOS管模块按键控制直流电机加减速启停

目录 一、资源说明 二、基本参数 参数 引脚说明 三、驱动说明 大功率MOS模块驱动 对应程序: 四、部分代码说明 接线说明 STC89C52RC大功率MOS模块 STM32F103C8T6大功率MOS模块 五、基础知识学习与相关资料下载 六、视频效果展示与程序资料获取 七、项目主要材料清单 八…

Dockers更新镜像(保留原始数据)

文章目录 一、前言二、使用步骤1.拉取需要更新的镜像版本2.获取当前镜像启动参数3.停止当前镜像4.启动新镜像5.删除旧镜像三、测试验证一、前言 日常工作中,应用程序为了避免漏洞、体验等等肯定是需要定期更新的,使用Docker安装的应用镜像也一样需要定期更新。更新最大的风险…

搭建基于lvs+nginx的负载均衡服务集群

GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者:蟹黄瓜子文章来源:社区投稿 1.基于四层七层的负载均衡 实现负载均衡的方式有很多,例如…

使用C#写一个Windows服务

创建服务程序 可能你的VS里面没有【Windows服务】这个模板,那么你就需要通过“打开Visual Studio安装程序“,通过VisualStudio Installer来通过“修改”来安装【.NET桌面开发】 通过上面两个地方均可以进入对应的代码文件 public partial class …

4年功能测试月薪9.5K,4个月时间进阶自动化,跳槽涨薪4k后我的路还很长...

前言 最开始我并不是互联网从业者,是经历了一场六个月的培训才入的行,这个经历仿佛就是一个遮羞布,不能让任何人知道,就算有面试的时候被问到你是不是被培训的,我还是不能承认这段历史。我是为了生存,才选…

使用遗传算法计算神经网络的超参数

遗传算法是基于种群的思想,将问题的解通过编码的方式转化为种群中的个体,并让这些个体不断地通过选择、交叉和变异算子模拟生物的进化过程,然后利用“优胜劣汰”法则选择种群中适应性较强的个体构成子种群,然后让子种群重复类似的…

nginx配置websocket支持wss

和前端联调完项目之后,将项目部署到了开发环境上面。结果这时候发现ws连接报错了,怎么回事,明明和前端在本地都联调好了的! 观察报错发现,提示我们需要使用wss连接,而我和前端在对接联调时使用的是ws连接。…

mysql 学习---窗口函数

文章目录Mysql 8.0新特性窗口函数常见窗口函数Mysql 8.0新特性 窗口函数 理解: 窗口函数的作用类似于在查询中对数据进行分组,类似于聚合函数,但不同的是把聚合函数是分组的记录合成一条,也就是一组一条数据,窗口函数…

缓存击穿、缓存穿透、缓存雪崩

初学者总是喜欢自己吓自己,在听到缓存击穿、缓存穿透、缓存雪崩等问题后,就觉得这根本不是自己这个级别所能接触的知识点,甚至不敢下定决心去了解。 然而,缓存击穿、缓存穿透、缓存雪崩等概念只是听着高大上罢了,实则并…

RabbitMq应用

1.RabbitMQ介绍 1.1现存问题 服务调用:两个服务调用时,我们可以通过传统的HTTP方式,让服务A直接去调用服务B的接口,但是这种方式是同步的方式,虽然可以采用SpringBoot提供的Async注解实现异步调用,但是这…

Spring之AOP

谈起AOP就不得不说起代理,Java 源代码经过编译生成字节码,然后再由 JVM 经过类加载,连接,初始化成 Java 类型,可以看到字节码是关键,静态和动态的区别就在于字节码生成的时机 静态代理:由程序员…

BLE MESH中的Secure Network beacon包

作用:节点使用安全网络信标来识别子网及其安全状态。可以用来更新Key和Iv Index。 数据包结构: 数据包格式: 大小含义 Beacon Type 1安全网络信标(0x01) Flags1包含密钥刷新标志和IV更新标志 Network ID8包含网络ID的值…

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II

今天是链表章节最后一天,加油💪 24. 两两交换链表中的节点 题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节…

html练习11:案例仿制

1.目标效果 2.布局效果 3.顶端部分制作效果 问题:img和p无法同时垂直居中显示,img会顶端对齐,p会底部对齐 解决方法:把img作为背景加入;用两个div分别做img和p的容器再进行格式调整 4.导航栏部分制作效果 要点&#…

保证项目如期上线,测试人能做些什么?

要保证项目按照正常进度发布,需要整个研发团队齐心协力。 有很多原因都可能会造成项目延期。 1、产品经理频繁修改需求 2、开发团队存在技术难题 3、测试团队测不完 今天我想跟大家聊一下,测试团队如何保证项目按期上线,以及在这个过程中可能…

词法分析程序

一、实验原理 1.1实验内容 通过本实验,应达到以下目标: 1.掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。 2.掌握词法分析的实现方法。 3.上机调试编出的词法分析程序。 1.2实验内容 词法分析是作为相对独立的阶段来完成的…

C# 事件

一 C#中的事件 大致上:事件-----回调函数; 二 用户界面中的事件 ① 按钮点击事件 ② 基本的写法 this.button1.Clicknew System.EventHandler(this.button1_Click); private void button1_Click(object sender,EventHandler e) {this.label1.TextDat…

C++智能指针weak_ptr

C智能指针weak_ptr 学习路线:C智能指针shared_ptr->C智能指针unique_ptr->C智能指针weak_ptr 简介:本文讲解常用的智能指针的用法和原理,包括shared_ptr,unique_ptr,weak_ptr。 概述 weak_ptr设计的目的是为配合 shared_ptr 而引入…