943.62K
Category: programmingprogramming

Write-Ups

1.

Write-Ups
Пузанов В.М.
Взвод К-451

2.

Bash - System 1
Задача прочитать пароль
Подключаемся по ssh к серверу.
Смотрим где мы находимся «ls –la»
Читаем файл с помощью «cat» файл «.passwd»
В доступе к файлу отказано из-за недостатка прав
Для решение данной проблемы подменим команду «ls» командой «cat». Так как в действительном каталоге не
имеется программы с названием «ls», то система обращается к переменной «$PATH», используемой для указания
оболочке, где искать исполняемые файлы. Таким образом мы можем изменить нашу переменную «PATH», прописав
туда путь к «cat».
Создадим папку для нашей команды
Скопируем команду «cat» в нашу директорию
Переименуем «cat» в «ls»
Изменим переменную `$PATH`, добавив туда путь к нашей команде «ls(cat)»
Выполняем код и получаем пароль: «!oPe96a/.s8d5»

3.

Sudo - weak configuration
Подключаемся по ssh к серверу.
Смотрим где мы находимся «ls –la»
Посмотрим, что написано в readme.md
Узнаем, что пароль находится в папке
ch1cracked. Посмотрим, что
может
выполнять пользователь.
Есть возможность выполнить команду «cat» от
пользователя «app-script-ch1-cracked» через данный
путь
«/challenge/app-script/ch1/notes/*».
После
звездочки добавляем путь к .passwd.
Прочитав файл получаем пароль: «b3_c4r3ful_w1th_sud0».

4.

Bash - System 2
Подключаемся по ssh к серверу.
Смотрим где мы находимся «ls –la»
Создадим файл ls.c в /tmp/tmpt. Заполним
наш код в созданный файл.
Скомпилируем наш код
Добавляем нашу папку в PATH
Запускаем программу ch12 и получаем пароль: «8a95eDS/*e_T#»

5.

HTTP - Improper redirect
Попробуем перейти в «http://challenge01.root-me.org/webserveur/ch32/index.php»
Видим, что попали в «login.php» однако должны были в
«index.php» делаем вывод, что присутствует переадресация.
Попробуем обойти редирект через командную строку с
помощью «Curl» (это инструмент командной строки для
передачи данных, указанных в синтаксисе URL). Запрос:
«curl
http://challenge01.root-me.org/webserveur/ch32/index.php»
Как и предполагали флаг был записан на странице «index.php».
Пароль: «ExecutionAfterRedirectIsBad»

6.

HTTP - Verb tampering
При входе видим форму входа на сайт. От нее толку
мало. Поэтому попробуем через командную строку с
помощью «сurl».
По умолчанию «Curl» отправляет запрос методом «GET». В
ответ получаем 401 Authorization Required. Заодно видим,
что на сервере используется web-сервер Apache.
Сменим метод и посмотрим на все ли методы была
настроена аутентификация. При использовании метода
«OPTIONS» получили содержимое страницы.
Пароль: «a23e$dme96d3saez$$prap»

7.

PHP - Command injection
При входе видим окно запросов.
Попробуем пропинговать сервер и посмотрим, что есть в
папке с помощью команды «127.0.0.1; ls»
Видим, что в есть «index.php» попробуем открыть его с
помощью «127.0.0.1; cat index.php | tr ? _» .
«?» заменили на «_» чтобы открылся «php» код. Однако
видимо в связи неполадки со стороны «root-me» флаг не
открылся.
Пароль: «…»

8.

SQL injection – Authentication
Необходимо получить пароль администратора
Чтобы получить пароль администратора
составляем SQL инъекцию:
Логин: admin' -Пароль: admin' --
Исследуем элементы страницы.
При
исследовании
«password»
обнаружен
«t0_W34k!$»
поля
флаг:

9.

SQL injection – String
Необходимо получить пароль администратора
Чтобы получить пароль администратора составляем SQL инъекцию.
Через функцию поиска получилось узнать, что используемая система баз данных – SQLite.
При осуществлении полезной нагрузки с
помощью запроса «'union select 1,2--» узнаем,
что есть два столбца которые можно
использовать для дальнейших запросов.
Следующим шагом мы ищем таблицы,
которые есть в базе данных.
Составляем
запрос
для
поиска
содержимого таблицы: «union select
tbl_name,2 from sqlite_master--»

10.

Из приведенной выше полезной нагрузки мы видим, что в базе данных используются две таблицы, а именно
новости и пользователи, исходя из задания нам нужна таблица пользователей в которой должны быть данные
администратора.
Использовать полезную нагрузку «sql» для
того чтобы узнать существующие столбцы.
В таблице пользователей упоминаются юзеры
и их пароли, составим запрос для получения
данных из этой таблицы: «'union select
username,password from users--».
При удачном получении имени пользователя и пароля вспоминаем что нужный нам флаг — это пароль
администратора: «c4K04dtIaJsuWdi».

11.

SQL injection – Numeric
Чтобы узнать какая БД установлена сделаем ошибочный
запрос.
Изучим начальные данные.
Перейдем по первой ссылке.
Видно, что показываются новости, но
обращаем
внимание
на
URL
(http://challenge01.root-me.org/webserveur/ch18/?action=news&news_id=1
). В конце стоит id = 1. попробуем
поменять его на -1.
Остался только заголовок.
Можно предположить, что это
название таблицы. Объединим
запросы id = 1 и -1.
Узнав, что используется SQLite3
сделаем запрос, для того чтобы
узнать название всех таблиц.
Сделаем запрос (union select *
from users) для того чтобы
узнать, что находится в «users».
Получили возможные пороли администратора. Проверим
подойдет ли один из них. Нужным паролем оказался:
«aTlkJYLjcbLmue3»

12.

Local File Inclusion
При входе видим список возможных действий.
Просматривая все вкладки заметно что
на каждой странице есть «index.html»,
откроем его.
Модернизируем
ссылку
доступа:
http://challenge01.root-me.org/webserveur/ch16/?files=crypto&f=../../admin/index.
php
Открывается новая страничка где указан пароль
администратора: «OpbNJ60xYpvAQU8».

13.

File upload - ZIP
Для начала нужно загрузить .zip файл.
Создадим .php файл который будет выводить текущую конфигурацию PHP.
Добавим этот файл в .zip архив и загрузим его.
Распакуем его.
Прямой доступ к отчету «1.php» выдает ошибку «403». Поскольку
доступ возможен только к файлам «txt». В «Kali» заменим формат
«php» на формат «txt» и поместим его обратно в «zip».

14.

Заново загружаем полученный «zip». Распаковываем его.
Читаем «index.txt». Видим, что внутри есть нужный нам пароль.
Пароль: «N3v3r_7rU5T_u5Er_1npU7»

15.

File upload - MIME type
Мы видим фотогалерею. Интересен раздел
upload. Здесь можно загрузить свой файл.
Разрешено загружать разрешения
GIF, JPEG, PNG.
Подготовим php файл, который будем загружать в фотогалерею. В файл запишем php код, который выведет
содержимое файла .passwd. Размещаем в удобной директории E:\root-me.

16.

Далее с помощью curl в командной строке загружаем PHP файл в галерею:
«curl -i -X POST -F file=@E:/root-me/1.php http://challenge01.root-me.org/web-serveur/ch21/?action=upload»
В ответ получаем «Wrong file type!». Файл не загружается так как не подходит формат. Теперь
минимальным дополнением к команде меняем MIME тип загружаемого файла на image/gif:
«curl -i -X POST -F file="@E:/root-me/1.php;type=image/gif;" http://challenge01.root-me.org/webserveur/ch21/?action=upload»

17.

Файл
загрузился.
Копирую
«31a577cd7c39969b68c54d607199165a»
значение
PHPSESSID:
Прописываем URL к нашему файлу: «http://challenge01.root-me.org/webserveur/ch21/galerie/upload/31a577cd7c39969b68c54d607199165a//1.php»
Скрипт вывел содержимое файла в котором хранился искомый пароль:
«a7n4nizpgQgnPERy89uanf6T4».
English     Русский Rules