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

ssrf初步

一,简介

全称:Server-Side Request Forgery(中文:服务器端请求伪造)

攻击者从服务端发起请求,让服务器连接任意外部系统,从而泄露敏感数据。主要利用各种协议的请求伪造,例如php协议,gopher协议(ssrf中最强的)

二,原理。

1.服务端允许从其他服务器应用获取数据,但没有对目标地址做过滤与限制,从而导致在服务端可以访问内网而丢失关键信息。(这样做可以绕过防火墙,因为是从内部攻击,而非外部)

2.攻击者主动使应用通过127.0.0.1localhost向服务器发出 HTTP 请求,原本直接访问admin/url并不会出问题,但是当该请求来自本地时,访问控制就会被绕过,攻击者就可以随便浏览想要的内容了。

三,细节

1.可用的协议包括但不限于

file:/// 从文件系统中获取文件内容,如,file:///etc/passwd
dict:// 字典服务器协议,访问字典资源,如,dict:///ip:6739/info:
sftp:// SSH文件传输协议或安全文件传输协议
ldap:// 轻量级目录访问协议
tftp:// 简单文件传输协议
gopher:// 分布式文档传递服务,可使用gopherus生成payload

2.可以攻击的漏洞包括但不限于

提供url分享,可以收藏图片,视频,提供在线转码和翻译,等可以发送请求同时可以人为控制地址的位置都有可能

3.防范意见——不完全

最好的办法:避免用户在代表服务器发出请求的函数中输入

黑白名单:控制能够获取内网信息的ip,防止应用被用于攻击内网

端口限制:将端口号限制为常见的80,8080等,

协议禁用:仅允许http和https等协议生效,防止其他协议带来的不必要的麻烦

过滤返回信息:以免关键信息被有心值人利用

4.ssrf绕过——不完全

(1)没有限制请求ip为内网ip

    短网址        eg:百度短地址https://dwz.cn/

    进制转换   将ip地址转换为8,16进制等

     特殊域名   

(2)域名限制

       利用@    不同的函数对@的解析有不同的方式

(3)限制请求方式仅为http

    302跳转     暂时性跳转,

     短地址

(4)其他

     符号  包括但不限于     。 (1) 【::】        将其插入或包裹ip地址即可 

     编码     CRLF 编码,将ip地址转换为crlf编码

 ctfhub

一,内网访问

1.打开题目,上面有提示,尝试访问位于127.0.0.1的flag.php

2.构造url

二,伪协议读取文件

1.打开环境,有提示,尝试去读取一下Web目录下的flag.php

2.构造url,/?url=file:///var/www/html/flag.php,出现???

3.查看源码即可

三,端口扫描(工具:bp)

1.打开环境,提示说端口范围是8000-9000(dict协议:探测开放的端口——payload: ?url=dict://127.0.0.1:8000

2.用bp截取后,在开头构造GET /?url=http://172.0.0.1:8000 HTTP/1.1

3.发送至inturder板块,修改payloads中的内容,扫了以后就可以得到flag

 

 

四,post请求

1.打开环境,提示说发一个HTTP POST请求,ssrf是用php的curl实现的.并且会跟踪302跳转。

2.构造伪协议,因为要通过172.0.0.1访问,我们需要bp抓包来修改,先访问一下302.php,没有什么,再访问flag.php,有一个key值,但是不是我们想要的东西。

3.看一下flag.php的源码,上面说使用gopher://协议进行传输,修改一下

4.放包以后发现我们的url符号被转换,进行二次编码,就可以得到flag

相关文章:

ssrf初步

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

linux 安装 mangodb 并设置服务开机自启

1、下载 wget http://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz 2、解压 tar -zxvf mosquitto-1.6.8.tar.gz 3、编译安装cd mosquitto-1.6.8 make sudo make install4、在当前目录。进入mosquitto服务文件存放的文件夹 cd service/systemd可以看到3个文件 点击read…...

Virtualbox7.0.10+Ubuntu20.04网络配置

虚拟机部署在服务器上时,需要进行网络配置,使虚拟机和服务器在同网段下,以保证内网的终端可以访问到虚拟机 1. 设置虚拟机 打开虚拟机设置,选择“网络”,将网卡设为桥接网卡 注:设置前,需要先…...

设计模式之服务定位器模式

想象一下,你的Java应用是一座庞大的迷宫,里面藏着无数宝贵的服务宝藏,而你正需要一张精确的藏宝图来指引方向,迅速找到并利用这些宝藏。服务定位器模式,正是这样一张神奇的地图,它帮你动态定位并获取应用中…...

冯喜运:5.12黄金回撤继续上涨,下周原油走势分析

【黄金消息面分析】:本周,黄金市场迎来了自4月中旬以来的最佳单周表现。周五(3月9日),金价攀升至2360.54美元/盎司,涨幅0.62%,而纽约商品交易所6月交割的黄金期货价格上涨1.5%,收报2…...

JavaEE企业级开发中常用的JDK7和JDK8的时间类

JDK7时间类 全世界的时间有一个统一的计算标准 在同一条经线上的时间是一样的 格林威治时间 简称GMT 计算核心 地球自转一天是24小时 太阳直射正好是12小时 但是误差太大 现在用原子钟来代替 用铯原子震动的频率来计算时间,作为世界的标准时间UTC 中国标准时间…...

leetcode 2316.统计无向图中无法互相到达点对数

思路:并查集 其实就是连通块的一个变形题目,一般的连通块题目要我们求的是连通个数,或者能不能到达,这里反过来问了。 首先,我们用dfs也是可以做到的,在dfs中统计每一个连通块的个数,然后用乘…...

WPS二次开发系列:如何使用WPS返回的FileUri

作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 目录 什么是FileUri 在SDK中的使用场景 打开文档时…...

python删除一个文件夹所有文件

在Python中,可以使用os模块来删除一个文件夹中的所有文件,但保留文件夹本身。以下是一个简单的例子: import osdef delete_files_in_folder(folder_path):for filename in os.listdir(folder_path):file_path os.path.join(folder_path, fi…...

overflow:hidden对解决外边距塌陷的个人理解

外边距塌陷: 子元素的上外边距大于父元素的上外边距,导致边距折叠,取两者之间最大值,即子元素外边距,导致父元素上外边距失效。 解决办法:在父元素样式添加overflow:hidden;或者border:1px solid black;(不…...

【linux软件基础知识】- 文件的概念:Linux 中的文件

Linux 中的文件 在 Linux 中,文件是存储在存储设备(例如硬盘驱动器或固态驱动器)上的数据项的集合。 文件被组织为字节序列,并由文件系统中的唯一名称来标识。 以下是 Linux 中文件的一些关键特征: 字节序列:Linux 中的文件被视为字节序列。 每个字节可以表示一个字符…...

Context capture/Pix4Dmapper/AutoCAD/CASS/EPS软件的安装流程与使用方法;土方量计算;无人机摄影测量数据处理

目录 专题一 无人机摄影测量技术应用现状及其发展 专题二 基本原理和关键技术讲解 专题三 无人机影像外业数据获取 专题四 数据处理环境建立与软件熟悉 专题五 GNSS数据土方量计算 专题六 基于无人机影像数据的正射影像制作 专题七 基于无人机影像数据的三维模型制作 专…...

算法系列之堆排序实践哪家强

1.概念 堆排序是一种树形选择排序,是对简单选择排序的有效改进和优化。 堆(heap),这里所说的堆是数据结构中的堆(对应于算法),而不是内存模型中的堆(数据存储形式,还比如:栈&#…...

01-win10安装Qt5

Qt5安装教程 下载Qt5官网下载(下载很慢)镜像网站下载(有些版本没有资源)迅雷下载(推荐)百度网盘下载(推荐)安装Qt5下载Qt5 官网下载(下载很慢) 【注意】:官网下载非常慢,没有镜像下载时常20+ Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这…...

mybatis使用及配置相关,仅做个人记录

在spring-boot项目中mybatis的配置文件在yml文件中,并没有mybatisconfig.xml文件 yml文件中配置:(来源:https://blog.51cto.com/u_16213723/8747999) mybatis:# XML文件路径,可配置多个,逗号分…...

【STM32 |新建一个工程】基于标准库(库函数)新建工程

目录 STM32开发方式 库函数文件夹 建工程步骤 库函数工程建立 建立工程总结 STM32开发方式 目前stm32的开发方式主要有基于寄存器的方式、基于标准库的方式(库函数的方式)、基于HAL库的方式基于库函数的方式是使用ST官方提供的封装好的函数&…...

C#利用ClearScript执行Javascript脚本

1,新建.netframework winform工程 2,打开nuget程序包管理界面,安装Microsoft.ClearScript.V8,Microsoft.ClearScript.V8.Native.win-x64. 3,编写Javascript脚本,另存为demo.js function testFunc(t) {return t "&#xf…...

住宅ip与数据中心ip代理的区别是什么

代理通常意味着“替代”。它是用户设备和目标服务器之间的中介,允许在不同的IP地址下上网。代理ip根据来源分类可分住宅ip与数据中心ip,二者之间区别是什么呢? 住宅ip是由互联网服务提供商(ISP)提供给家庭的IP地址。出于这个原因&#xff0c…...

【计算机网络】数据链路层的功能

数据链路层的基本功能: 封装成帧透明传输差错检测 数据链路层使用的信道主要有两种 点对点信道——PPP协议广播信道——CSMA/CD协议(有线局域网)、CSMA/CA协议(无线局域网) 数据链路层所处的地位 从图中可以看出,数据从主机H1送到主机H2需要在路径中…...

信号线电路串联电阻

简介 两芯片端串联一个电阻,在靠近发送端或接收端。 一般串联的是0Ω, 22Ω, 33Ω的电阻,也可能更大。 目的 1.解决信号反射问题,吸收反射。 问题如下: pcb单端阻抗过大,而接收端是cmos输入,使得接收端…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...