Найти тему

CTF web — octocat for the win

Оглавление

Разбираем восьмую задачку из нашего соревнования CTF. Задание называется octocat for the win, 500 баллов за флаг.

Переходим по ссылке — там форма логина.

-2

Беглый осмотр ничего не дал. Анализируем текст задания. Нам дают такие термины как "octocat", "система контроля версий". Кто есть октокэт?

Octocat — пятиногая помесь кошки и осьминога, талисман крупнейшего хостинга репозиториев и IT-проектов Github.
-3

Ну а github — репозиторий с системой контроля версий. В общем, становится понятно, что на сайте должна быть скрытая папочка ".git" с проектом.

Ссылки

CTF - Capture The Flag

https://github.com/internetwache/GitTools

Решение

Как проверить, не забыл ли админ закрыть доступ к папке ".git"? Заходим туда дописав "/.git/".

-4

Ошибка 403 означает, что папка существует, но доступа к просмотру содержимого нет. Значит, предположение о существовании папки ".git" было верным.

Проверим, что есть доступ к файлам в папке. Стандартный проект представляет собой следующую древовидную структуру:

+-- HEAD
+-- branches
+-- config
+-- description
+-- hooks
¦ +-- pre-commit.sample
¦ +-- pre-push.sample
¦ L-- ...
+-- info
¦ L-- exclude
+-- objects
¦ +-- info
¦ L-- pack
L-- refs
+-- heads
L-- tags

Пробуем открыть файл HEAD.

-5

Доступ есть, файл HEAD скачался. Вот только флага в нём нет.

-6

Скачал ещё несколько файлов, флага не обнаружил. Можно анализировать содержимое файлов и искать имена, чтобы их скачать. Это долго, к чему напрягаться, если всё давно придумано за нас. Есть готовые решения, воспользуемся GitTools.

https://github.com/internetwache/GitTools

Нам даже весь проект не нужен, качаем скриптик dumper.sh. Данный скрипт скачивает все возможные файлы из ".git". Натравливаем его на наш URL с папкой ".git".

Как пользоваться:

./gitdumper.sh -hdumper.sh -h
###########
# GitDumper is part of https://github.com/internetwache/GitTools
#
# Developed and maintained by @gehaxelt from @internetwache
#
# Use at your own risk. Usage might be illegal in certain circumstances.
# Only for educational purposes!
###########
[*] USAGE: http://target.tld/.git/ dest-dir [--git-dir=otherdir]
--git-dir=otherdir Change the git folder name. Default: .git

Пуляем:

./dumper.sh http://octocatforthewin.target.tld/.git/ ./octocat/
-7

Что-то скачалось.

-8

Я посмотрел содержимое файлов - не видно флаг. Снова лезем в GitTools и скачиваем скрипт extractor.sh - он вытаскивает коммиты и их содержимое из повреждённых репозиториев.

Как пользоваться:

./extractor.sh /tmp/mygitrepo /tmp/mygitrepodump

где

  • /tmp/mygitrepo - содержит папку .git
  • /tmp/mygitrepodump - место куда поместить результат

Пуляем:

./extractor.sh ./octocat ./octocate
-9

Что-то вычленилось.

-10

Анализируем содержимое — а вот и флаг!

evoctf{CseK6Eo762c_octocat_is_fuuuuuuuun}

Безопасность

  1. Не должно быть папки .git на сайте.
  2. Если уж есть на сайте папка .git - закрывайте доступ на чтение файлов.

Источник:
https://internet-lab.ru/ctf_web_octocat_for_the_win

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.