Автор: @Vespii

Ссылка на таск Codeby:

https://codeby.games/categories/web/e33e5eef-1b48-465d-b087-3ccc1b09b1c8

Описание задания

Я запустил облачное хранилище файлов. Пока доступна только бета-версия, но без смс и регистрации :)

62.173.140.174:16034

Решение

На сайте присутствует форма загрузки файлов на сервер.

После загрузки файл сохранятся в папке upload, и название файла заменяется на новое случайное имя.

К заданию были прикреплены исходники. Давайте взглянем на них.

В upload.php написано, какие расширения файлов он не принимает.

if($imageFileType == "php" || $imageFileType == "php5" || $imageFileType == "php4" || $imageFileType == "php3" || $imageFileType == "php2" || $imageFileType == "phtml" || $imageFileType == "phar") {
	
	$output = "Sorry, PHP files are not allowed.";
	
	$uploadOk = 0;
	
}

А в .htaccess была найдена интересная строчка, которая допускает расширение x-httpd-php, и сервер будет обрабатывать такие файлы как php скрипты.

# RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  AddType application/x-httpd-php .x-httpd-php

В качестве шелла будем использовать p0wny-shell.

Поменяем расширение файла на x-httpd-php:

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

Да, это получилось. Файл был успешно загружен на сервер.

Переходим по ссылке и видим, что все прекрасно работает. Ура! Остается только прочитать флаг и задание решено.

Tags:

#codeby#writeup#web#easy