Ну насчет
expect://ls -дело не зайдет - нужен установленный модуль, который там отсутствует.
В php я ноль. Попробую разобраться во всем этом.
.SpoilerTarget" type="button">Spoiler: 2
Код:
Code:
include_once ('config.php'); // подключение файла config.php - тут не придраться.
if (isset($_GET['title']) and isset($_GET['image'])){
$title = $_GET['title'] .'.png';
// Проверяет передачу переменной $title и $image и на основе данных $title формирует название. 1.png, 2.png sffsf.png - как угодно.
Код:
Code:
$edited_image_url = $_GET['image']; // просто $edited_image_url равно суперпеременной $_GET['image'];
$imagedata = file_get_contents($edited_image_url); // тоже самое
if ($imagedata) {
file_put_contents($_UPLOAD_PATH . $title, $imagedata);
}
// загрузка файла из config.php $_UPLOAD_PATH = '/var/www/gyazo/db/'; с названием 123.png
Код:
Code:
header ("Location: $_URL_EDIT_PREFIX$title");
}
die();
// переадресовывает по адресу /edit/. Меняешь потом на /db/ и наблюдает результат
Меня интересует заливка шелла или выполнение системных команд.
Залить шелл не получится,
Код:
Code:
$title = $_GET['title'] .'.png';
Жестко прописано, что только пнг.
Если выполнять команды - то нет модуля.
Тогда все же непонятно, почему не работает удаленное выполнение кода, чтение команды типа:
reload.php?image=php://filter/convert.base64-encode/resource=&title=test&state=new
Понимаю, что идет обращение к файлу, например /etc/passwd - оно записывается в тело изображения и сохраняется как картинка.
Но здесь получается, что идет тупо сохрание, но никак не обработка команды: взял скрипт, обработал его, вернул новое значение что получилось в изображение?
Все, путаница в голове.