Wget
Нередко встречаются таски, использующие "особенности" работы с wget.
Рассмотрим некоторые из них
Содержание
Особенности wget
Ссылки с редиректами
Если требуется сохранить файл с каким то именем и обойти фильтр - то это то что вы ищете!
Суть фичи в том, что wget сохраняет файл не на который указывала ссылка, а на которую указал редирект.
ВАЖНО!!! Работает не везде (на данный момент известно только MacOS)
Пример работы ссылки с редиректом вы можете видеть на изображении:
Настройка редиректа в NGINX веб-серверах
Для этого требуется отредактировать файл /etc/nginx/sites-enabled/default (файл может отличаться - в зависимости от ОС и ваших настроек)
В главной части вставляем такую строку:
rewrite ^/file1.txt$ http://site.org/file2.txt permanent;
Она будет перенаправлять всех с http://site.org/file1.txt на http://site.org/file2.txt
Настройка редиректа в Apache веб-серверах
В случае с Apache требуется редактировать уже не default, а .htaccess файл. Он должен находиться в папке сайта в которой будет файл с редиректом.
Добавляем в него такую строку
Redirect /file1.txt http://site.org/file2.txt
Перенаправление аналогичное с nginx.
GET параметры
С помощью манипуляцией GET параметров можно манипулировать названием файла и обходить фильтры. Например мы можем загрузить файл с отличающимся расширением:
http://site.org/file1.txt?.php
В итоге у нас будет сохранен файл file1.txt%3F.php который будет интерпретироваться как php исполняемый файл.
Типичная RCE
Так же не забываем, что wget исключительно терминальная утилита и если должным образом не обработать вводные данные, то может быть rce.
Например введем url сайта
http://site.org/file1.txt;ls
и исполнится команда ls.
Подробнее об этом вы можете рассмотреть в статье, посвященной rce.
Access List Bypass / Race Condition
Уязвимость под номером CVE-2016-7098 позволяет провести атаку Race Condition и обойти ограничение на формат скачиваемых файлов.
Если упростить, то атака заключается в замедлении скачивания конца файла wget'ом. Файл записывается потоком, а проверка на имя файла происходит после скачивания всего файла, в связи с чем важная часть пейлоада будет записана в файл с нужным разрешением и будет храниться в нем какое то время до конца скачивания (до проверки расширения).
Ссылки
page-requisites parameter
Wget с аргументом page-requisites будет скачивать все ссылки на странице, что в некоторых случаях позволяет обойти фильтрацию URL и скачать нужный нам файл.
Пример райтапа
Boston Key Party CTF 2016 Good Morning and OptiProxy Writeup
Райтапы
SECUINSIDE CTF Quals 2016 - Trendyweb Method #2