关于ssrf

news2025/1/11 10:47:31

        首先,先介绍一下ssrf。ssrf即服务器端请求伪造,是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。而且因为请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统。也就是说可以利用一个网络请求的服务,当作跳板进行攻击,也就是说在这个过程中,网站成为了中间人。

        攻击者利用了可访问Web服务器(A)的特定功能 构造恶意payload;攻击者在访问A时,利用A的特定功能构造特殊payload,由A发起对内部网络中系统B(内网隔离,外部不可访问)的请求,从而获取敏感信息。此时A被作为中间人(跳板)进行利用。

        其次是漏洞的成因:由于服务端提供了从其他服务器应用获取数据的功能,但同时又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。比如,攻击者操作服务端指定URL地址获取网页文本内容,加载指定地址的图片,下载等,利用的就是服务端请求伪造,SSRF利用存在缺陷的WEB应用作为代理 攻击远程和本地的服务器。

攻击方式:       

1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

2.攻击运行在内网或本地的应用程序(比如溢出);

3.对内网web应用进行指纹识别,通过访问默认文件实现;

4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);

5.利用file协议读取本地文件等。

        这个图我觉得还是比较清晰的

接下来就是在实战中学习了

以ctfhub为例:

第一题,在题目上已经给了提示,让该url

直接在参数这里改也可以,使用bp修改也可以

得到了flag

第二题

是伪协议读取文件,题目也是给了提示

URL伪协议大概有这些:

  • file:///
  • dict://
  • sftp://
  • ldap://
  • tftp://
  • gopher://

这里有大佬教用法的博客

这里要用到第一个,因为一般而言,网站目录就是var/www/htm,尝试构造

进入了这个界面

使用查看器得到了flag

第三题,端口扫描

这里题目一开始就告诉我们了,端口范围在8000-9000,根据这个端口范围其实也可以考虑到爆破了

这里使用bp抓包,送到爆破模块,设置爆破的变量

设置范围,开始爆破

通过爆破结果可知,有一个长度不同的相应数据包

查看回显得到了flag

第四题,POST请求

根据提示可知,可能文件放到了一个网页的目录之下,这里先选择用之前的伪协议来,看一下文件源码

根据提示信息可知,需要从127.0.0.1去访问,修改好以后继续访问

拿到了KEY,这个题目因该就是告诉我需要给服务器发送一个KEY就能得到你想要的东西。但是页面上又什么都没有,这就需要我们构建一个POST请求包来发送这个KEY。

在网上搜索了一下,post请求包的格式

构造

gopher://127.0.0.1:80/_POST /flag.php HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/x-www-form-urlencoded
Content-Length: 36

key=6f56a5dac9b43bb2e3176a68a8917eaa

插入变量,发现有问题

根据回显400,可知,这里出现了语法的错误,这里的状态码是服务器不理解语法,这里我认为应该是,POST请求包里面的内容被拆分开来了,然后被识别错误了

这里进行url编码

gopher://127.0.0.1:80/_POST%2520/flag.php%2520HTTP/1.1%250d%250AHost:%2520127.0.0.1:80%250d%250AContent-Type:%2520application/x-www-form-urlencoded%250d%250AContent-Length:%252036%250d%250A%250d%250Akey=6f56a5dac9b43bb2e3176a68a8917eaaf%250d%250a

再次插入,得到了flag

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

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

相关文章

计算机网络——应用层协议(2:http协议)

在这篇文章中自定义应用层协议,我曾介绍了应用层协议中需要我们开发人员自行制定应用层协议,而应用层协议又离不开结构化字段以及序列化和反序列化还有报头的封装。而在今天,我们有一种应用层协议是我们几乎人人都接触过的协议,它…

暗区突围国际服pc端海外版新手前期如何赚钱 暗区突围新手教学

暗区突围国际服pc端海外版新手前期如何赚钱 暗区突围新手教学 暗区突围是一款极为惊险的射击游戏,让玩家充分感受紧张激烈的战斗以及获取财富的过程。但是有许多新手玩家是不会在游戏里赚钱的,也会在赚钱过程中遇到很多问题,我将在这篇文章…

PGP加密技术:保护信息安全的利器

随着数字化时代的到来,个人和企业对信息安全的需求日益增长。PGP(Pretty Good Privacy)加密技术作为一项强大的加密工具,为保护敏感数据提供了一种有效的方法。本文将探讨PGP加密技术的基本原理、应用场景以及其在现代信息安全中的…

IDEA - java.lang.OutOfMemoryError: Java heap space / insufficient memory

IDEA 第一次运行项目时,会报如题错误,解决办法是: 将图示部分由默认的 700 改为 2048。

PPT弹簧画法

1. 插入两个圆 2. 使用Lvyhtools的形状-位置分布-圆形阵列 注意:阵列中心要点击文字后才能选择 3. 删除中心的圆,使用Onekey10的原位复制,可以多次; 4. 右击图像选择设置形状格式-线条(无线条) 5. 找到第二…

云HIS源码,基于云计算的医院临床信息系统(有应用案列)

云HIS全套商业源码,基于云计算的医院临床信息系统 提供预约挂号、门急诊收费、门诊医生站、护士工作站、药房药库管理、电子病历、住院医生站、住院护士工作站、住院登记结算、出院管理、病案管理、医药价格管理、财务管理、统计查询、会员管理等业务及管理功能。 …

PCIe下一代线缆标准CopprLink发布

作为业界广泛采用的高速串行点对点互联标准,PCIe自诞生以来历经多次迭代升级,现已成为CPU、GPU、FPGA、SSD等计算设备间不可或缺的互连桥梁。PCIe 7.0标准更是将数据传输速率提升至令人惊叹的32 GB/s(每通道)。 然而,面…

linux上go项目打包与部署

1.第一步把项目打包 1.确保本地goland的操作系统为linux go env找到GOOS如果为window就修改为Linux 修改命令为 go env -w GOOSlinux2.打包 在项目根目录下输入 go build main.go然后项目根目录下会出现一个mian的二进制文件 3.上传包 将 main 程序包放到服务的目录下&…

俄罗斯国际消费类电子电器展ICEE:人潮如织,盛况空前

近日,备受全球瞩目的俄罗斯国际消费类电子电器展ICEE在莫斯科盛大落幕。本次展会为期四天,真的攒足了眼球,不仅俄罗斯这边的很多媒体和自媒体有报道,展会第一天,很多参展商通过短视频平台将展会的盛况传到了国内&#…

深入理解Python的类,实例和type函数

问题起源: class t():pass s1 t() s2 type("Student2",(),{}) isinstance(s1, type), isinstance(s2, type)为什么第一个是false,第二个是true呢 根因定位: 在Python中,一切皆对象,类是对象&#xff0c…

补一 继承的使用

继承的关键词为extends 模型为 public class 子类 extends 父类

C#winfrom三层架构实现简单课程管理系统管理系统,三层架构实现增删改查

1. 项目展示 1.1登录展示 1.2添加课程信息展示 1.3课程信息管理-查询-修改-删除 1.4修改登录密码 2.项目功能介绍(图) 3.数据库设计 3.1 教师表设计 3.2 课程分类表 3.3 课程信息表 4. 创建样式界面 winfrom 超详细UI创建过程 实现双色球选号器UI界面…

ssrf初步

一,简介 全称:Server-Side Request Forgery(中文:服务器端请求伪造) 攻击者从服务端发起请求,让服务器连接任意外部系统,从而泄露敏感数据。主要利用各种协议的请求伪造,例如php协…

Oracle SQL Developer导出数据库表结构,表数据,索引以及序列号等对象

目录 一、业务需求 三、环境说明 三、数据导出 四、数据导入 一、业务需求 通过Oracle SQL Developer软件将指定oralce数据库中的表结构,表数据,索引以及序列号等对象导出成SQL文件。 三、环境说明 数据库版本:Oracle Database 11g Expres…

【C++】STL_ string的使用 + 模拟实现

前言 目录 1. STL简介(1)什么是STL(2)STL的版本(3)STL的六大组件 2. string的使用2.1 npos2.2 遍历字符串string的每一个字符2.3 迭代器:2.4 string的内存管理2.5 string模拟实现2.5.1 深拷贝&a…

MySQL学习笔记10——日志

日志 一、日志1、通用查询日志(1)开启通用查询日志(2)查看通用查询日志(3)删除通用查询日志 2、慢查询日志3、错误日志4、二进制日志(1)查看二进制日志(2)刷新…

创新指南|创新组合管理的7个陷阱以及如何避免它们

进入未知领域的第一步可能具有挑战性。尽管创新会犯错误,但在将 IPM 作为公司实践实施时,您可以准备好并避免一些常见的陷阱。在这篇文章中,我们将讨论组织在实施创新组合管理时遇到的最常见的陷阱。 01. 在映射中包含日常业务任务 映射中的…

工会排队返现:创新促销模式,实现消费者与商家双赢

在数字化营销日益盛行的今天,各种促销策略层出不穷,但真正能够打动消费者内心并促成双赢局面的策略却并不多见。工会排队返现模式便是其中一例,它巧妙地融合了积分奖励、奖金池累积以及排队等待机制,为消费者和商家带来了全新的互…

C++入门--引用

点赞关注不迷路!本节涉及C入门--引用 如果文章对你有帮助的话 欢迎 评论💬 点赞👍🏻 收藏 ✨ 加关注👀 期待与你共同进步! 1.1 引用的概念 啥叫引用?其实很好理解,比如你隔壁邻居的孩子上学时大…

【练习3】

1.将二叉搜索树转为排序的双向链表 (好久没看数据结构,忘完了,学习大佬的代码) class Solution { public:Node* prenullptr,*headnullptr; //pre为每次遍历时的前一个节点,head记录头节点Node* treeToDoublyList(Node* root) {if…