Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

История одного взлома. Или, как никогда не надо делать.


Yoda

Recommended Posts

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

Устали они восстанавливать все из бекапа. При этом человек, который обратился, достаточно грамотный, для того чтобы закрыть все известные публичные уязвимости, и настроить безопасность окружения. Все равно сносят магазин подчистую. 
Начали смотреть и обнаружили в корне вот такой интересный, и казалось бы безобидный код:

 

<?php
if (isset($_GET['name']) || isset($_POST['name'])) {
header('Content-Type: image/jpeg');
header('Content-Disposition: attachment; filename="'.htmlspecialchars($_GET['name']).'"');
header('Cache-Control: no-cache');
header('Content-Transfer-Encoding: chunked');
readfile($_GET['name']);
} else {
    echo 'Access Denied!';
}
?>

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

как то типа... https://site.com/?name=https://site.com/image/some_pic.jpg

 

Ничего казалось бы страшного, если не присмотреться ближе.  Вместо some_pic.jpg достаточно было вставить ./config.php и привет пароли к базе. 
 

Реально и смех и грех. Этот код был написан лет наверное шесть назад, когда мой товарищ только-только начал заниматься сайтостроением и у него не было ни единой мысли, о том что такое уязвимости или "а что так можно было?"... 

 

Но времена меняются, хакеры не спят, и реально я наблюдаю в последнее время просто эпидемию заражений и взломов. 
Будьте аккуратны при написании подобных скриптов, фильтруйте данные! Всегда фильтруйте данные!

 

  • +1 5
Надіслати
Поділитися на інших сайтах


В 16.01.2019 в 08:47, Yoda сказал:

фильтруйте данные! Всегда фильтруйте данные!

Ни отнять, ни прибавить..

 

Надіслати
Поділитися на інших сайтах

41 минуту назад, buslikdrev сказал:

Может на сервере разрешено php скачивать.

Это как?

В приведенном скрипте нет проверки
1. на валидацию контента
2. на валидацию пути
например Тупо подставить. DIR_IMAGE
3. фильтрация запроса - посмотрите во внутрь /common/filemanager

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.