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

CTF — Insecure Code Management

CTF

Продолжаем решать задачки по информационной безопасности web-серверов. Сегодня задачка с портала root-me.org, называется "Insecure Code Management". За решение задачки дают 20 баллов, сложнее начального уровня.

ctf

В качестве задания предлагается получить пароль от учётной записи администратора, который хранится в открытом виде где-то в проекте. В подсказках к заданию приведена ссылка на документацию GIT. А GIT — система контроля версий. Становится понятно, что на сайте должна быть скрытая папочка ".git" с версиями проекта.

Ссылки

https://github.com/internetwache/GitTools

CTF web — octocat for the win

Windows 10 — включаем bash

Решение

Переходим на страницу задания:

http://challenge01.root-me.org/web-serveur/ch61/

ctf

Видно какую-то форму логина. Проверим, есть ли в корне сайта папка ".git".

http://challenge01.root-me.org/web-serveur/ch61/.git/

ctf

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

https://github.com/internetwache/GitTools

Кстати, я уже раньше описывал этот процесс в задачке:

CTF web — octocat for the win

Сначала скачиваю скрипт gitdumper.sh.

ctf

Данный скрипт скачивает все возможные файлы из ".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

Рядом создаю папку "project", в которую буду скачивать содержимое ".git".

У меня винда, поэтому пользуюсь подсистемой Windows для Linux:

Windows 10 — включаем bash

С первого раза скрипт не заработал, пришлось сначала заменить виндовые переводы строк на линуксовые:

dos2unix ./gitdumper.sh

ctf

Со второго раза скрипт тоже не заработал, пришлось ставить дополнительный пакет binutils:

apt install binutils

И с третьего раза:

bash ./gitdumper.sh http://challenge01.root-me.org/web-serveur/ch61/.git/ ./project/

ctf

Проект скачался. Теперь нужно извлечь коммиты и их содержимое из репозитория. Снова лезем в GitTools и скачиваем скрипт extractor.sh.

ctf

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

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

где

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

​Заменим виндовые переводы строк на линуксовые:

dos2unix ./extractor.sh

ctf

Пуляем:

./extractor.sh ./project ./projectresult

ctf

Что-то вычленилось в новую папку projectresult, целых пять коммитов.

ctf

Внутри каждого коммита находится несколько файлов.

ctf

Просмотрел config.php, а там пароль в открытом виде. Пароль из последнего коммита в качестве флага не подошёл.

ctf

Просмотрел config.php в предпоследнем коммите.

ctf

А вот и флаг: s3cureP@ssw0rd

Валидируем.

ctf

Флаг подходит, зарабатываем 20 очков.

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

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

Иначе "Welcome admin"...

ctf

Теги

 

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