>
Сентябрь 2017
Пн Вт Ср Чт Пт Сб Вс
« Авг    
 123
45678910
11121314151617
18192021222324
252627282930  

Что такое удаленное выполнение кода. Уроки хакинга – глава 12.

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

Image result for удаленное выполнение кода

Это может выглядить следующим образом:

Здесь уязвимое приложение может использовать url index.php?page=1, однако, если пользователь введёт index.php?page=1;phpinfo(), приложение выполнит функцию phpinfo() и вернёт приложению её результат.

Также RCE иногда используется для обозначения Command Injection, которые OWASP различает. С помощью Command Injection, в соответствии с OWASP, уязвимое приложение выполняет произвольные команды в принимающей их операционной системе. Опять же, это становится возможным благодаря недостаточной обработке и проверки пользовательского ввода, что приводит к тому, что пользовательский ввод выпоняется операционной системой, как команда.

В PHP, к примеру, это может быть из-за того, что пользовательский ввод будет вставлен в функцию system().

Примеры удаленного выполнения кода.

1. Polyvore ImageMagick

Сложность: Высокая
Ссылка на отчёт: http://nahamsec.com/exploiting-imagemagick-on-yahoo/46
Дата отчёта: Май 5, 2016

Описание:

ImageMagick представляет собой программный пакет, обычно используемый для обработки изображений, например кадрирование, масштабирование, и так далее. Imagick в PHP, rmagick и paperclip в Ruby, а также imagemagick в NodeJS используют этот пакет, и в апреле 2016 в нем было обнаружено множество уязвимостей, одна из которых могла быть использована атакующими, чтобы выполнить удаленный код, на чём я и сосредоточился.

В двух словах, ImageMagick не фильтровал надлежащим образом получаемые имена файлов и в результате использовался для выполнения системного вызова system(). В итоге атакующий мог вставлять команды вроде https://example.com”|ls “-la, и при получении они были исполнены. Пример с ImageMagick будет выглядеть так:

Что интересно, ImageMagick определяет свой собственный синтаксис для файлов Magick Vector Graphics (MVG), а значит, атакующий мог создать файл exploit.mvg со следующим кодом:

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

Зная это, Бен Садежепур протестировал купленный Yahoo сервис Polyvore на эту уязвимость. Как сказано в его блоге, Бен сначала протестировал уязвимость на локальной машине к которой он имел доступ, чтобы подтвердить, что mvg файл работает правильно. Вот код, который он использовал:

Здесь вы можете видеть, что он использовал библиотеку cURL, чтобы сделать обратиться к SOMEIPADDRESS (измените это на IP адрес уязвимого сервера). В случае успеха, вы должны получить следующий ответ:

Ben Sadeghipour ImageMagick test server response

Далее Бен посетил Polyvore, загрузил изображение в качестве аватара и получил следующий ответ от сервера:

Ben Sadeghipour Polyvore ImageMagick response

Выводы

Чтение это большая часть успешного взлома и оно включает в себя чтение о программных уязвимостях и Common Vulnerabilities and Exposures (CVE Индефикаторов). Знание прошлых уязвимостей может помочь вам, когда вы сталкиваетесь с сайтами, которые не успевают обновляться. В данном случае, Yahoo пропатчили сервер но это было сделано некорректно (я не смог найти подробностей об этом). В результате, знание того, что в ImageMagick была уязвимость, позволило Бену выбрать эту программу в качестве цели, и в итоге заработать $2000 вознаграждения.

Итоги

Удаленное выполнение кода, как и остальные уязвимости, возникает в результате неправильной фильтрации и обработки пользовательского ввода. В предоставленом примере ImageMagick неправильно обрабатывал контент, который мог быть зловредным. Это, вместе с знанием Бена о уязвимости, позволило ему найти и протестировать те зоны, которые могли быть уязвимыми. Что касается поиска подобных уязвимостей, быстрого ответа не существует. Будьте в курсе вышедших CVE и следите за ПО, которое используется сайтами и которое может быть устаревшим, т.к. скорее всего оно может быть уязвимым.

Оглавление:

Базовые знания о HTTP протоколе. Глава 1

Что такое HTML иньекция. Уроки хакинга. Глава 2.

Что такое HPP (HTTP Parameter Pollution) атака? Уроки хакинга. Глава 3

Что такое CRLF инъекция, примеры использования. Уроки хакинга, Глава 4.

Уязвимости в логике приложений. Уроки хакинга. Глава 6

Уязвимости в логике работы приложений. Примеры.

Что такое XSS атака (Cross Site Scripting Attacks). Уроки хакинга. Глава 7.

SQL иньекции. Виды и примеры использования. Уроки хакинга. Глава 8.

Уязвимости Открытого Перенаправления. Уроки хакинга. Глава 9

Захват поддомена. Глава 10

XML уязвимости. Глава 11

Share Button
[Всего голосов: 13    Средний: 3.2/5]

Вам может быть интересно также:

Last updated by at .

Leave a Reply

You can use these HTML tags

<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">