Как ломали Глюкозу.ru Trinux (ttrinux@inbox.ru) Xakep, номер #069, стр. 069-084-1 Криворуким отечественным админам посвящается В настоящее время примерно 95% сайтов в рунете уязвимы. Я серьезно. И дело даже не в кривых программерских руках, а скорее в халтурности сисадминов. Чтобы найти дыру в скриптах грамотного программиста, потребуется несколько дней, а то и недель. А вот чтобы порутать хостера, порой достаточно пары минут - необходимо собрать лишь нужный сплойт. Хотя и это, как оказалось, делать совсем не обязательно. Есть более простой способ получить доступ ко всем ресурсам и БД любого пользователя на большинстве российских хостингов. Сага о шоколадке Дело было весной этого года. Меня привлек сайт известной поп-группы «Глюкоза». Сестра попросила узнать приватный мыльник солистки группы, покрутив перед моим носом шоколадкой. Я согласился на выгодную сделку. Сайт, как это часто бывает, имел 2 версии: HTML и Flash. Серверные сценарии были написаны на PHP, и это было большим плюсом. Недолго думая, я начал осматривать сайт. Сразу же наткнулся на кучу стандартных вещей – форум PhpBB 2.0.6 и до боли знакомый движок веб-чата. Через пару минут у меня были административные права на этом форуме и md5-хеши админов. Можно было взломать md5-хэши и продолжить веселье, но я предложил админам сайта обменяться. Они мне искомый мыльник, а я показываю им их уязвимость. Мысль, на самом деле, была довольно глупая, но как бы то ни было, я был мягко послан. Пришлось исследовать сайт дальше, и я принялся за чат. Этот движок я уже видел и даже ломал, но мне это сильно не помогло: я мог читать приваты, писать от имени других пользователей, смотреть их IP и т.п., но не более того. Что же делать дальше? Никаких других уязвимых скриптов на сайте я не нашел, но очень хотел заполучить шоколадку. Ну что ж, если сам сайт, несмотря на кучу багов, не может мне помочь, надо браться за хостинговый сервер. Мне не потребовалось много времени для того, чтобы узнать, что glukoza.ru хостится на Агаве (www.agava.ru). Меня это немного озадачило, но, как оказалось, ненадолго. Понеслась! Первым делом я решил найти бажный сайт, хостящийся на Агаве, и установить на нем web-шелл, чтобы можно было пощупать сервер изнутри. Мне повезло, и я довольно быстро нашел уязвимый проект – там был стандартных include-баг и я очень быстро получил нужный доступ. Сейчас я уже и не помню точно адрес этого бажного сайта, назову его www.x.ru. Я знал, что на серверах Агавы стоит FreeBSD 4.8, но денег на приватный сплойт у меня не было. Меняться же никто не хотел, поэтому я решил просто полазить по серверу в поисках чего-нибудь интересного. Права, с которыми работал мой web-шелл, как и следовало ожидать, были nobody. Меня это напрягало. В папке /tmp/ не было найдено сплойтов, однако там я нашел кое-что другое. Это были темповые файлы cPanel. Дело в том, что когда юзеры редактируют ресурсы файлов на сервере через cPanel, она кидает их копии в папку /tmp/. Меня поразило другое - я смог открыть эти файлы! Т.е., несмотря на мои nobody-права, их хватило, чтобы открывать файлы, принадлежащие другим пользователям. Это не могло не обрадовать. В голове созрел примерно такой план: |