攻防世界 mfw(Git源码泄露与命令执行漏洞)

这篇具有很好参考价值的文章主要介绍了攻防世界 mfw(Git源码泄露与命令执行漏洞)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Git 源码泄露:

1、strpos() 函数

2、assert()函数

3、file_exists() 函数

4、die() 函数

代码审计:

命令执行漏洞:


打开链接

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

 在About里发现网站是使用Git、PHP、Bootstrap搭建的

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

 使用dirsearch扫一下

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

从结果可以看出确实存在.git 目录,我们也可以直接访问到

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

Git 源码泄露:

.git文件是开发人员在开发过程中使用 Git(分布式版本控制系统)做开发时产生的隐藏目录,该文件包含一些版本信息和网站源码,数据库信息等敏感信息。开发人员使用 git 进行版本控制,对站点自动部署。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们可以通过 .git文件恢复网站源码,来获取一些敏感信息。

我们这里使用Githack来下载并恢复.git文件

GitHack 是一个 .git 泄露利用脚本,通过泄露的 .git 文件夹下的文件可以重建还原工程源代码

首先切换到Githack所在位置

使用命令:python Githack.py url

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

 进入下载文件所在目录查看mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

 打开flag.php,但是并没有看到什么

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

 在index.php里发现有用代码

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

 

审计这段代码前我们需要先知道以下知识:

1、strpos() 函数

查找字符串在另一字符串中第一次出现的位置(区分大小写)

eg:

查找 "php" 在字符串中第一次出现的位置:

<?php
echo strpos("I love php, I love php too!","php");
?>

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

2、assert()函数

检查断言是否为 false,且会将括号中的字符当成代码来执行,返回true或false,并在结果为 false 时采取适当的行动。

3、file_exists() 函数

检查文件或目录是否存在,如果指定的文件或目录存在则返回 TRUE,否则返回 FALSE。

4、die() 函数

该函数是exit()函数的别名,会输出一条消息,并退出当前脚本。

代码审计:

?php

if (isset($_GET['page'])) {
	$page = $_GET['page'];
} else {
	$page = "home";
}

就是使用get请求方式给page传参,如果没传,默认page=home 

(这也是为什么我们打开题目链接进去是在home页面)

继续看后面的代码:

$file = "templates/" . $page . ".php";

// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");

$file变量会接收传入的$page并且在其前面拼接templates/,在其后面拼接.php

(PHP中用.来实现字符串的拼接)

比如我们传入?page=flag,那么$file就成了templates/flag.php

strpos() 函数会在'$file'这个字符串中进行查找,是否存在'..'

当字符串里有'..',则会返回一个数(即'..'第一次出现的位置),结果为true

与右边的false并不恒等,此时就会执行or右边的die()函数,输出 Detected hacking attempt!

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

 

// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");

?>

此外,file_exists() 函数还会检查我们传入的page拼接后是否存在

有前面可知,templates下实际存在的只有4个文件

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

只要我们传入的不是这4个,就会执行die函数,输出 That file doesn't exist!

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

命令执行漏洞:

实际上这里的file_exists()函数对我们获取flag并不影响

因为assert()函数会将括号中的字符当成代码来执行

我们可以直接在第一个assert()函数处就调用cat命令来获取flag

首先传入的page肯定不能有 '..',使strpos() 函数返回false,false和右边的false恒等

构造payload:?page=123') or system("cat templates/flag.php");//

其实这里的前半段可以是它存在的文件也可以是它不存在的文件(123就算换成flag也不影响)

因为我们前半段返回的是false,我们只要or后面的执行即可

在最后添加注释//,确保后面的代码不会执行

mfw攻防世界,web,git,git,代码审计,命令执行漏洞,web

 传入page后查看源码,找到flag

 cyberpeace{1f150d17210f2080d18800a5a99e9f9b}文章来源地址https://www.toymoban.com/news/detail-651104.html

到了这里,关于攻防世界 mfw(Git源码泄露与命令执行漏洞)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • .git文件夹信息泄露漏洞利用

    未经授权请勿利用文章中的技术 资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果 和损失,均由使用者本人负责。 无意中使用x-ray被动扫描,扫描出了一个git文件信息泄露。 通过手动验证确实可以下载到.git配置文件(.git文件夹是来自于

    2024年02月15日
    浏览(51)
  • PHP<=7.4.21 Development Server源码泄露漏洞

    因为特殊的原因CTF荒废了一段时间,近期总算再次捡了起来,算是从头开始了吧。近期比赛刚好遇到了这个漏洞,看国内似乎还没有过多的论述,先总结一波。 PHP从5.4开始,就提供了一个内置的web服务器,主要是用来做本地的开发用的。 前提:php已经加入到本地电脑的环境

    2024年02月10日
    浏览(54)
  • 挖洞思路:前端源码泄露漏洞并用source map文件还原

    webpack是一个JavaScript应用程序的静态资源打包器(module bundler)。它会递归构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。大部分Vue应用会使用webpack进行打包,如果没有正确配置,就会导致Vue源码泄露,可

    2024年01月16日
    浏览(38)
  • Jenkins 命令执行 -- jetty 敏感信息泄露 --(CVE-2021-2816)&&(CVE-2017-1000353)&&(CVE-2018-1000861)

    对于 = 9.4.40、= 10.0.2、= 11.0.2 的 Eclipse Jetty 版本,对带有双重编码路径的 ConcatServlet 的请求可以访问 WEB-INF 目录中的受保护资源。例如,对 /concat?/%2557EB-INF/web.xml 的请求可以检索 web.xml 文件。这可能会泄露有关 Web 应用程序实施的敏感信息。 直接在url路径请求如下地址 Jenkin

    2024年02月08日
    浏览(41)
  • TerraMaster TOS 远程命令执行(CVE-2022-24989)TerraMaster TOS 敏感信息泄露(CVE-2022-24990)

    一、漏洞名称 TerraMaster TOS 远程命令执行(CVE-2022-24989) TerraMaster TOS 敏感信息泄露(CVE-2022-24990) 二、影响版本 TerraMaster NAS 4.2.x 4.2.30 三、漏洞危害 远程命令执行 敏感信息泄露 四、POC EXP ¤ 五、资产搜索 fofa: app=“TERRAMASTER-NAS” 六、漏洞背景 / 参考 / 延申 TerraMaster TOS 可能允

    2024年02月03日
    浏览(52)
  • 入门漏洞——命令执行漏洞、目录浏览漏洞

    一、命令执行漏洞 1.介绍 命令执行(Command Execution)漏洞即可以直接在Web应用中执行系统命令,从而获取敏感信息或者拿下shell权限,服务器没有对执行的命令进行过滤。用户可以随意执行系统命令,属于高危漏洞 命令执行漏洞可能造成的原因是Web服务器对用户输入命令安全

    2024年02月04日
    浏览(43)
  • 漏洞靶场——DVWA+命令执行漏洞

    DVWA是OWASP官方编写的PHP网站,包含了各种网站常见漏洞 DVWA搭建环境: PHP环境+DVWA源代码 https://github.com/digininja/DVWA/archive/master.zip 安装phpstudy 命令执行漏洞是指服务器没有对执行的命令进行过滤,用户可以随意执行系统命令,命令执行漏洞属于高危漏洞之一。 命令连接符 :

    2024年02月06日
    浏览(65)
  • RCE代码执行漏和命令执行漏洞

    前置知识: 漏洞检测: 在了解漏洞概念前,应该先知道一下这个漏洞如何检测的,我们应该或多或少听过白盒测试(白盒),黑盒测试(黑盒)。 白盒测试: 白盒测试是对源代码和内部结构的测试,测试人员是可以知道内部的逻辑和结构的,差不多就是代码审计。 黑盒测试:

    2024年02月19日
    浏览(39)
  • 【网络安全】命令执行漏洞

    应用程序中有时候需要调用一些执行系统命令的函数,在php中常见的为 system 、 exec 、 shell_exec 、 passthru 、 proc_poen 、 popen 等函数用来执行系统命令。当黑客能控制这些函数的参数时,就可以讲恶意的系统命令拼接到正常的命令中,就会命令执行攻击,这就是命令执行漏洞。

    2024年02月03日
    浏览(38)
  • 命令执行漏洞 | iwebsec

    这是 iwebsec 靶场,具体搭建过程可以看前面的文章。 应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用system、exec、shell_exec、passthru、popen、proc_popen等函数执行系统命令。当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常的命令中,从而

    2024年01月24日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包