Перейти к основному содержанию

CTF web — octocat for the win

CTF

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

ctf

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

ctf

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

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

ctf

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

Ссылки

https://github.com/internetwache/GitTools

Решение

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

ctf

Ошибка 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.

ctf

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

ctf

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

https://github.com/internetwache/GitTools

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

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

./gitdumper.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/

ctf

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

ctf

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

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

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

где

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

Пуляем:

./extractor.sh ./octocat ./octocate

ctf

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

ctf

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

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

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

Теги

 

Похожие материалы