Ошибки управления сессиями в
облачных решениях и на
классических хостингах

@d90andrew
7-8.11.2013
План:
● Описание проблем.
● Пересечение ключей сессий на шаред
хостингах.
● Шаринг сессии на облачных нодах.
● Способы защ...
Описание проблем:
1. Общее хранилище сессий.
1.1 Произвольный доступ к сессиям.
1.2 Нет возможности менять формат сессий.
...
Общее хранилище сессий:
Пример 1.1:
Имеется произвольный доступ.
Злоумышленник может управлять сессией на любом
хосте в пр...
Классический пример:
System ;Linux srv1337.hostingtrololo.com
session.save_path;/tmp;/tmp
session.save_path tcp://localhos...
Классический пример:
blog.trololo.com

hacker.trololo.com
srv1337.hostingtrololo.com
session
forum.trololo.com

target.tro...
target.trololo.com
SugarCRM :/modules/Users/authentication/SugarAuthenticate/SugarAuthenticateUser.php
hacker.trololo.com
Exploit:
Vulnerable CMS
CMS

Session

Type

DataLife 10.0
( http://dle-news.ru/ )

$_SESSION[‘dle_sort_main’] (and all dle_sort_* p...
Общее хранилище сессий:
Пример 1.2:
Нет возможности менять формат сессии.
Злоумышленник может использовать пересечение
клю...
Пересечение ключей сессий:
Пересечение ключей сессий:
Datalife Engine, MODx, LiveStreet CMS, SMF
(disabled db sess), PhpMyAdmin, TinyCms,
SugarCRM..
...
Плохое распределение хранилищ сессий:
Злоумышленник может воспользоваться ситуацией
failover хранилища и исполнить случаи ...
Облачные ноды:
Облачные ноды:
Рассмотрим пример из практики:
Failover хранилища memcache или БД
отработан как запись в файлы - таким
обра...
Методы защиты:
Для хранения сессий необходимо
использовать отдельные
хранилищапрефиксы для каждого
приложения.
The End.
@d90andrew
7-8.11.2013

Всем спасибо за внимание!
Дополнительные материалы:
http://www.supernifty.org/blog/2008/04/19/php-sessions-on-shared-hosting-hack-3/
http://stackove...
Upcoming SlideShare
Loading in...5
×

Andrey Danaw - Session management errors in cloud solutions and in classic hosting systems

423
-1

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
423
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Andrey Danaw - Session management errors in cloud solutions and in classic hosting systems

  1. 1. Ошибки управления сессиями в облачных решениях и на классических хостингах @d90andrew 7-8.11.2013
  2. 2. План: ● Описание проблем. ● Пересечение ключей сессий на шаред хостингах. ● Шаринг сессии на облачных нодах. ● Способы защиты.
  3. 3. Описание проблем: 1. Общее хранилище сессий. 1.1 Произвольный доступ к сессиям. 1.2 Нет возможности менять формат сессий. 2. Плохое разделение хранилищ сессий.
  4. 4. Общее хранилище сессий: Пример 1.1: Имеется произвольный доступ. Злоумышленник может управлять сессией на любом хосте в пределах серверной ноды.
  5. 5. Классический пример: System ;Linux srv1337.hostingtrololo.com session.save_path;/tmp;/tmp session.save_path tcp://localhost:11211
  6. 6. Классический пример: blog.trololo.com hacker.trololo.com srv1337.hostingtrololo.com session forum.trololo.com target.trololo.com
  7. 7. target.trololo.com SugarCRM :/modules/Users/authentication/SugarAuthenticate/SugarAuthenticateUser.php
  8. 8. hacker.trololo.com Exploit:
  9. 9. Vulnerable CMS CMS Session Type DataLife 10.0 ( http://dle-news.ru/ ) $_SESSION[‘dle_sort_main’] (and all dle_sort_* params ;) ) SQL-Injection LiveStreet CMS ( http://livestreetcms.ru/ ) $_SESSION[‘user_id’] Auth-By-pass eXtplorer 2.1.4 ( http://extplorer.net/ ) $_SESSION['credentials_'.$auth_type][‘username’]=admin $_SESSION['credentials_'.$auth_type][‘password’]=true Auth-By-pass TinyCMS 1.4 (http://tinycms.designskate.com/ ) $_SESSION[‘username’] , $_SESSION[“security”]=true Auth-By-pass SugarCRM 6.5.15 ( http://www.sugarcrm.com/ ) $_SESSION[‘authenticated_user_id’] Auth-By-pass
  10. 10. Общее хранилище сессий: Пример 1.2: Нет возможности менять формат сессии. Злоумышленник может использовать пересечение ключей сессий на приложениях (Например для повышения привилегий).
  11. 11. Пересечение ключей сессий:
  12. 12. Пересечение ключей сессий: Datalife Engine, MODx, LiveStreet CMS, SMF (disabled db sess), PhpMyAdmin, TinyCms, SugarCRM.. Но, угроза актуальна В выше преведенных CMS не было обнаружено пересечений ключей сессий. для самописных приложений.
  13. 13. Плохое распределение хранилищ сессий: Злоумышленник может воспользоваться ситуацией failover хранилища и исполнить случаи из ранее приведенных примеров.
  14. 14. Облачные ноды:
  15. 15. Облачные ноды: Рассмотрим пример из практики: Failover хранилища memcache или БД отработан как запись в файлы - таким образом приходим к случаю хостера, если есть возможность писать в файл на одном клиенте, получаем доступ ко всем другим на этой же ноде.
  16. 16. Методы защиты: Для хранения сессий необходимо использовать отдельные хранилищапрефиксы для каждого приложения.
  17. 17. The End. @d90andrew 7-8.11.2013 Всем спасибо за внимание!
  18. 18. Дополнительные материалы: http://www.supernifty.org/blog/2008/04/19/php-sessions-on-shared-hosting-hack-3/ http://stackoverflow.com/questions/6671781/are-php-sessions-stored-in-tmp-on-shared-hosting-safe
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×