files

Задачка для знатоков PHP

7 posts in this topic

Задачка для знатоков PHP. Дано: файл img.php который злоумышленник заливает через уязвимость на хостинг следующего содержания:

<?php  
@$f = file('links.dba');
$c = file_get_contents(trim($f[$_GET['id']]));
if (isset($c)) {
Header('Content-type: image/jpeg');
echo $c;
}
else @header('Location:'.$f[$_GET['id']]);
?>

Вопрос: каким образом он может воспользоваться этим кодом для заливки файлов на хостинг? Вижу, что в переменную id через GET запрос скорее всего подставляется внешний урл с каким-либо содержимым (шеллом например), но в целом, не могу понять логику скрипта. Кто-может подсказать?

/img.php?id=....

Share this post


Link to post
Share on other sites
3 часа назад, files сказал:

Задачка для знатоков PHP. Дано: файл img.php который злоумышленник заливает через уязвимость на хостинг следующего содержания:


<?php  
@$f = file('links.dba');
$c = file_get_contents(trim($f[$_GET['id']]));
if (isset($c)) {
Header('Content-type: image/jpeg');
echo $c;
}
else @header('Location:'.$f[$_GET['id']]);
?>

Вопрос: каким образом он может воспользоваться этим кодом для заливки файлов на хостинг? Вижу, что в переменную id через GET запрос скорее всего подставляется внешний урл с каким-либо содержимым (шеллом например), но в целом, не могу понять логику скрипта. Кто-может подсказать?

/img.php?id=....

вот что написали в вк  не реклама /

https://vk.com/howdyho_net?w=wall-84392011_605608

Share this post


Link to post
Share on other sites

Видно же что при обращении к /img.php?id= получаем имитацию изображения. Оно не существует на хостинге, но открывается как изображение и его даже можно сохранить через браузер к себе на комп.

1. в links.dba лежат урлы похоже зараженных изображений
2. в переменную $c загоняем содержание изображения
3. показываем изображение со своего хостинга через Header('Content-type: image/jpeg');

уж не знаю, если в итоге сервер исполняет на своей стороне php код из изображения, то вы мне сейчас америку открыли, не шучу)
попробуйте закрыть исполнение php в директории куда грузят этот файл, если это возможно.

Share this post


Link to post
Share on other sites

Добавлю еще, что при помощи этого кода можно посмотреть исходники ваших скриптов.

UPD: только если в links.dba будут указаны к ним пути (например: ./img.php )

Share this post


Link to post
Share on other sites
17 часов назад, files сказал:

Задачка для знатоков PHP. Дано: файл img.php который злоумышленник заливает через уязвимость на хостинг следующего содержания:


<?php  
@$f = file('links.dba');
$c = file_get_contents(trim($f[$_GET['id']]));
if (isset($c)) {
Header('Content-type: image/jpeg');
echo $c;
}
else @header('Location:'.$f[$_GET['id']]);
?>

Вопрос: каким образом он может воспользоваться этим кодом для заливки файлов на хостинг? Вижу, что в переменную id через GET запрос скорее всего подставляется внешний урл с каким-либо содержимым (шеллом например), но в целом, не могу понять логику скрипта. Кто-может подсказать?

/img.php?id=....

woolfon прав ничего не делает. Только транслирует свои изображения как Ваши. Могу предположить что можно подкидывать что-нитбудь нехорошее со ссылочкой с вашего хостинга. Последний товарищ коментатор сам не знает о чем пишет.

Share this post


Link to post
Share on other sites
2 часа назад, woolfon сказал:

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

Вопрос в другом, как и что можно сделать с помощью этого залитого файла?

1) В той же директории нет файла "links.dba". 

2) При обращении к файлу, действительно предлагает скачать файл.

Цитата

Добавлю еще, что при помощи этого кода можно посмотреть исходники ваших скриптов.

Можете проиллюстрировать?

Share this post


Link to post
Share on other sites

я на днях пытался у себя на OpenServer сделать похожу схему, с помощью WinHex добавил php код в jpg и разместил его на domain1. После чего создал на domain2 php файл с вашим кодом и пытался исполнить код в изображении для domain2. Ничего не вышло

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.