Найти тему

CTF — Insecure Code Management

Оглавление

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

-2

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

Ссылки

CTF - Capture The Flag

https://github.com/internetwache/GitTools

CTF web — octocat for the win

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

Решение

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

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

-3

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

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

-4

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

https://github.com/internetwache/GitTools

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

CTF web — octocat for the win

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

-5

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

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

apt install binutils

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

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

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

-8

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

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

где

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

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

dos2unix ./extractor.sh
-9

Пуляем:

./extractor.sh ./project ./projectresult
-10

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

-11

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

-12

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

-13

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

-14

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

Валидируем.

-15

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

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

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

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

-16

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

💰 Поддержать проект

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