Я был обескуражен ответом техподдержки альфабанка, приведенным в посте «Находим SQL инъекцию...», а потому решил посмотреть как обстоят дела на других поддоменах.

Первое что я сделал — это нашел админку на b***.alfabank.ru с помощью того же гугла и незамысловатого «site:alfabank.ru inurl:/admin/»


И что я там увидел?

Скромное меню обещало мне PHPinfo(), настройки параметров сайта, и много чего еще:
  • Empty cache
  • Function reference
  • Hook_elements()
  • PHPinfo()
  • Rebuild menus
  • Reinstall modules
  • Session viewer
  • Theme registry
  • Variable editor

Уже сейчас у меня в руках оказались редактируемые настройки сайта:


Покопавшись немного с тем, что нашел, я заметил упоминание про еще один поддомен (названия поддоменов не привожу здесь по причине, которую вы прочитаете в конце поста).
Опять же, простым гуглением по имени этого поддомена получаем выдачу, в которой сразу обнаруживаем страницу пользователя по фамилии m*****kaya.

Там (о, чудо!) заботливый разработчик вывел нам var_dump объекта, благодаря чему мы видим hash пароля:1d0258c2440a8d19e716292b231e3190.


Что же, поищем его в радужных таблицах? И находим: пароль manager. Не слишком изощрённо, на мой взгляд, но по крайней мере не «love/secret/sex/god». Успешно логинимся: nm*****kaya@alfabank.ru:manager.

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

Р��зумеется, я мгновенно был заинтригован интерфейсом выполнения произвольных комманд php (кстати, кто-то может мне объяснить, зачем вообще он нужен на данном ресурсе?), где получил практически неограниченные возможности для исследования (ведь все это было проделано исключительно в научно-познавательных целях, вы же понимаете, да?):
echo shell_exec('uname -a');
echo shell_exec('grep -r "password" /usr/ > /var/tmp/tst.log');
echo shell_exec('find / -type d -perm 07700');
echo shell_exec('cat /etc/passwd');
echo shell_exec('ifconfig');
echo shell_exec('ps auxww');
echo shell_exec('cat /usr/local/etc/apache22/Includes/phpmyadmin.conf');
echo shell_exec('which wget');

и прочее в таком духе.

Помимо всего прочего, выяснилось, что права на доступ для пользователя www выставлены архилиберально. И правда, чего париться над /files/ если можно поставить 0777.

Дальше стало скучно, и я отписал о найденной уязвимости в службу поддержки, к которой, отметим справедливости ради, у меня получилось достучаться с первого раза.
Доброго времени суток, уважаемые сотрудники "Альфа-Банк"!
Уведомляю вас о том, что мною найдена серьезная уязвимость на одном
из ваших серверов, причем, на этот раз, на сервере отнюдь не
десятилетней давности.

Уязвимость вполне серьезная: она позволяет злоумышленнику выполнить
произвольную комманду shell на вашем сервере, дает админский доступ
к вашим [перечисление ресурсов], и много-много других "вкусностей". Видимо
за нее вам следует сказать спасибо товарищу [site-coder]@ gmail.com.

Некоторые подробности:
...
login: [login]
pass: manager

ну и далее php shell_exec('PROFIT').
С уважением, Александр.



Выводы в стиле капитана:
  • Даже тестовые и devel сервера следует холить и лелеять, защищая их от посторонних глаз.
  • Не следует предоставлять доступ к админке сайта людям, которые ставят словарные пароли, и при этом обладают чрезмерными правами доступа.
  • Не следует давать возможность контент-менеджерам, тестерам, и прочим выполнять произвольные команды на сервере.
  • Забывать закрывать страницы от поисковых роботов это плохо, плохо, плохо!
  • Ну и, разумеется, не следует грубить и подкалывать тех, кто сообщает вам о найденных уязвимостях.


Через два дня мне пришел ответ:
Александр, здравствуйте.

Большое спасибо за указание на ошибку! Безусловно, отдельное спасибо и огромное выражение нашей признательности за то, что не стали ее использовать, а поставили нас в известность.

В данный момент мы все исправили и прикрыли указанное Вами безобразие.

Этот сайт, безусловно, не десятилетней давности, более того, он пока не запущен – занимаемся его разработкой буквально в свободное от работы время. Конечно же, перед запуском «в бой» мы бы тщательно все проверили и протестировали. Хотя это и не оправдывает того факта, что мы недостаточно серьезно отнеслись к защите разрабатываемого продукта. В связи с тем, что речь идет о проектах, которые находятся в разработке и пока не анонсировались общественности, были бы крайне признательны, если бы Вы не публиковали ссылки на них до момента запуска.

Е��е раз благодарю Вас за информацию!

PS Судя по Вашему комментарию «десятилетней», Вы читали запись на Хабре. Очень жаль, что автор той записи не привел описание всех своих действий и всю переписку целиком, а только последнее письмо. В таком виде, конечно же, получается несколько иная интерпретация нашего отношения к помощи от пользователей наших сайтов. Жаль, что данную запись не видят все те прекрасные люди, которые ежедневно нам пишут об ошибках и неточностях на наших основных сайтах, которые помогают нам быть лучше, и которым мы очень признательны за оказываемую помощь.



Так как меня попросили не публиковать ссылки на ресурсы, то я выпилил их и особо красочные скриншоты из своего поста.

Очень хотелось бы обратить внимание хабраюзера 090h на последний абзац и почитать его комментарии к этому письму.

На текущий момент уязвимость, как вы понимаете, закрыта.
Спасибо за внимание.