Share Point Writeup - VolgaCTF 2017

Райтап посвящен веб таску Share Point за 200 очков с недавно прошедших VolgaCTF 2017.

Share Point

Look! I wrote a good service for sharing your files with your friends, enjoy)
share-point.quals.2017.volgactf.ru

Hints

1. flag's location is optimal


Начнем!

Share Point Writeup - VolgaCTF 2017

Нам предоставляется форма авторизации.

Если аккаунт существует, то высвечивается данная ошибка,

Error: wrong password 


иначе автоматически создается новый аккаунт и мы наблюдаем новый интерфейс.

upload.php:

Share Point Writeup - VolgaCTF 2017

Загрузим тестовый файл text.txt

Successful upload


и посмотрим на следующую вкладку files.php:

Share Point Writeup - VolgaCTF 2017

Посмотрим на последнюю вкладку с интерфейсом подтверждения shared файла (это нам не понадобилось, но в процессе оказалось, что возможно делиться файлами с пользователями, используя Path Traversal или проще ../../index.php )

Share Point Writeup - VolgaCTF 2017



Вернемся к предыдущей вкладке files.php.

Попробуем загрузить файл .php:

Share Point Writeup - VolgaCTF 2017

Шелл загрузить нам не получается. Хотя...



Вспомним, что ссылка на загруженный файл выглядит следующим образом:

http://share-point.quals.2017.volgactf.ru/files/<login>/test.txt



Из заголовков сервера можно определить, что сайт работает на Apache 2.4.18:

Share Point Writeup - VolgaCTF 2017


На серверах Apache в директориях сайта может храниться файл .htaccess . В нем присутствует множество настроек, например ip whitelist и blacklist. Но нам интересна следующая настройка: возможность указывать, что файл определенного формата будет интерпретироваться как .php.

Создадим файл htaccess (тк файлы, начинающиеся с точки являются скрытыми и не видны в диалоговом окне загрузки в браузерах) со следующей строкой:

AddType application/x-httpd-php .cool


Далее попытаемся отослать его на сервер, предварительно включив перехват в Burp Suite и поменяв имя файла с htaccess на .htaccess:

Share Point Writeup - VolgaCTF 2017

В итоге нужно скачать какой-нибудь php webshell (я использовал wso.php), переименовать, чтобы он оканчивался на .cool и отослать на сервер.

В итоге, при переходе на ссылку загрузки файла, наш файл запустится как php скрипт, и в случае, если вы загружали wso-shell, то увидите следующее:

Share Point Writeup - VolgaCTF 2017

Мы получили шелл!

Далее дело остается за малым - найти флаг. Знаю, что многие заступорились на этом моменте.

Один из вариантов решения проблемы - консольная команда locate:

Share Point Writeup - VolgaCTF 2017


$ locate flag.txt
/opt/flag.txt
$ cat /opt/flag.txt
VolgaCTF{AnoTHer_apPro0Ach_to_file_Upl0Ad_with_PhP}



Вот и всё!


P.S. Забыл упомянуть: чтобы удостовериться, успешно ли загрузился файл .htaccess, можно было перед загрузкой перейти по пути /files/<login>/.htaccess и получить 404 ответ, а после загрузки перезагрузить страницу и получить уже 403 (значит, что файл обрабатывается, как конфиг для Apache).скачать dle 10.5фильмы бесплатно

  • Автор: drakylar
  • Комментарии: 3
  • Просмотры: 794

Добавить комментарий

Вы не авторизованы и вам запрещено писать комментарии. Для расширенных возможностей зарегистрируйтесь!
    • Написал: drakylar
    • Комментарии: 12
    • 27 марта 2017 00:45
      • Нравится
      • 0
    Если честно, то таск не тянет на 200 баллов. Атака уже множество раз прописывалась.
    • Написал: swani
    • Комментарии: 6
    • 27 марта 2017 18:39
      • Нравится
      • 0
    А что, если файл .htaccess уже существует? Данный вектор атаки уже бы не прошел? или Он перезаписался бы?
    • Написал: drakylar
    • Комментарии: 12
    • 27 марта 2017 23:13
      • Нравится
      • 0
    Цитата: swani
    А что, если файл .htaccess уже существует? Данный вектор атаки уже бы не прошел? или Он перезаписался бы?


    В данном случае да т.к. если не ошибаюсь отсутствовала возможность перезаписи.