Views
3 years ago

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

взлом ВЫВОД

взлом ВЫВОД /PROC/SELF/ STATUS ВЫВОД /PROC/SELF/ENVIRON HTTP://WWW links • ru.php.net/manual/ ru/wrappers.data.php — протокол Data (RFC 2397) и описание его использования в php. en.wikipedia.org/wiki/ Data_URI_scheme — описание самого протокола. • ush.it/2008/08/18/ lfi2rce-localfile-inclusionto-remote-codeexecution-advancedexploitation-procshortcuts — proc shortcuts. milw0rm.com/ papers/260 — все о LFI/RFI. • itbloggen.se/cs/ blogs/secteam/ archive/2009/01/26/ alternative-waysto-exploit-PHPremote-file-includevulnerabilities.aspx — инклуд через mail. • ush.it/2009/02/08/ php-filesystemattack-vectors — атака на php-filesystem. • raz0r.name/articles/ null-byte-alternative — подробно об альтернативе нуллбайту. 062 "User-Agent: " Как и следовало ожидать, функция phpinfo() успешно выполнится. При этом часть /proc/self/environ с юзерагентом будет выглядеть так: PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/ X11R6/bin:/usr/bin:/bin SERVER_ADMIN=admin@site.com ... HTTP_KEEP_ ALIVE=150 ... Метод всем хорош, кроме того, что строка юзерагента и evil-код должны быть внедрены быстро и одновременно (так как твой код в /proc/self/environ легко сможет изменить любой другой только что запущенный процесс). Поэтому, намотав вновь полученные знания на ус, переходим к следующему способу. ЛОГИ, МЫ ВАС НАЙДЕМ! Снова представь, что у нас есть сайт с локальным инклудом, но проинклудить ничего не получается. Как узнать местонахождение апачевских access_log и error_log? По секрету скажу, что знать, где они лежат, вовсе не обязательно! Для нас постарался все тот же /proc, ведь здесь расположена удобная символическая ссылка на реальную локацию логов apache. Использовать ее для инклуда можно несколькими способами: 1. Через id процесса и ярлыки /proc/%{PID}/fd/%{FD_ID} Здесь: %{PID} — ид процесса (узнать можно, прочитав / proc/self/status), %{FD_ID} — ярлыки на соответствующие файлы (обычно 2 и 7 — логи апача). Пример: http://site.com/index.php?page=../../../../. ./../../../proc/self/status Допустим, %{PID} равен 1228, тогда конечный эксплойт будет выглядеть следующим образом: curl "http://site.com/index.php?page =../../../../../../../../proc/1228/ fd/2&cmd=phpinfo();" -H "User-Agent: " 2. Напрямую, без узнавания id процесса curl "http://site.com/index.php?page =../../../../../../../../proc/self/ fd/2&cmd=phpinfo();" -H "User-Agent: " Этот способ более приемлем для тебя, так как «self» — это всегда текущий процесс, а в первом случае %{PID} имеет дурное свойство очень часто меняться. В обоих перечисленных способах, как и в любом другом LFI логов апача, эти самые логи, естественно, должны быть доступны для чтения. ПОЛЕЗНОЕ МЫЛО На этот раз тебе необходимо представить, что на сайте жертвы не работают все предыдущие способы LFI. Невероятно и страшно! Но такие случаи действительно бывают, и итальянские хакеры secteam смогли придумать удивительный способ инклуда через обычный e-mail! Итак, большинство типичных веб-приложений содержат в себе функцию отправки мыла в качестве части регистрационной системы, каких-либо подписок и т.д. Зачастую юзер может изменять содержимое такого письма. В то же время никсы могут сохранять такое мыло локально. Сама техника LFI через mail выглядит следующим образом: 1. У атакующего есть профайл в веб-приложении на уязвимом сервере. 2. Атакующий изменяет какую-либо часть профайла (например, about), которая должна прийти в письме в качестве подтверждения смены информации, на свой evil-php код, подготовленный для локального инклуда. 3. Атакующий изменяет свой e-mail на www-data@ localhost (www-data — юзер, под которым запущен httpd; им могут быть такие значения, как «apache», «wwwrun», «nobody», «wwwdata» и т.д.). В итоге, отправленное мыло будет лежать в /var/mail (либо в /var/spool/mail) и иметь название юзера httpd. Вот эксплойт для этого способа: XÀÊÅÐ 07 /127/ 09

взлом curl "http://site.com/index.php?page= ../../../../../../../../var/mail/wwwdata&cmd=phpinfo();" Также, стоит отметить, что mail-файл будет доступен только тому юзеру, кому и предназначено письмо (то есть, апач должен быть обязательно запущен под тем же пользователем). NULL-БАЙТ ОТДЫХАЕТ Снова включи воображение и представь, что все вышеописанные способы отлично работают, но уязвимое приложение содержит на этот раз следующий код: Как быть? Можно проинклудить логи, но в конце дописывается не обрезаемое обычным %00 расширение «.php». На этот раз тебе поможет фича (или все-таки уязвимость?) самого php, обнаруженная юзером популярного забугорного хакерского форума sla.ckers.org со странным ником barbarianbob. Фича заключается в том, что интерпретатор php во время обработки пути до какого-либо файла или папки обрезает лишние символы «/» и «/.», а также, в зависимости от платформы, использует определенное ограничение на длину этого самого пути (ограничение хранится в константе MAXPATHLEN). В результате, все символы, находящиеся за пределами этого значения, отбрасываются. Теперь давай подробней рассмотрим этот вектор LFI, обратившись к уязвимому скрипту следующим образом: curl "http://site.com/index.php?page=../../.. /../../../../../proc/self/environ/////////// [4096 ñëåøåé]////////&cmd=phpinfo();" -H "User-Agent: " Наш любимый phpinfo(); выполнится успешно из-за нескольких причин. 1. Инклуд в самом скрипте примет следующий вид – XÀÊÅÐ 07 /127/ 09 2. Так как наш путь получится гораздо длиннее, чем MAXPATHLEN (кстати, необязательно он будет равен именно 4096; в винде, например, он может быть равен всего лишь 200 символам с хвостиком, — советую на каждой системе тестить это значение отдельно), то символы, находящиеся в конце пути (в данном случае — некоторое количество слешей и «.php»), интерпретатор php, не спрашивая ни у кого разрешения, успешно отсечет. 3. После пункта «2» наш код примет примерно такой вид: Как тебе уже известно, лишние слеши в конце пути услужливый php также обрежет, и наш злонамеренный код, в конце концов, превратится во вполне рабочий LFI! Для теста количества слешей для использования в данной уязвимости на своем сервере советую попробовать следующий php-скрипт. if($its_work=='1') { print 'Èñïîëüçîâàíî ñëåøåé: '.$i; } break; Рядом со скриптом просто положи файл work.txt с записанной в нем единичкой. Если инклуд произошел успешно, скрипт выведет тебе количество слешей, использованных для этого самого инклуда. Для полноты понимания технических сторон данного бага советую очень внимательно изучить соответствующие ссылки в сносках. И НАПОСЛЕДОК... Как видишь, прогресс в ресерчинге уязвимостей не стоит на месте. Новые баги находятся уже не в phpскриптах, а в самом интерпретаторе php! То, что раньше, казалось, взломать невозможно, сейчас представляется не более чем детской шалостью и развлечением для матерого хакера. Null-байт уже практически канул в лету, инклуд логов апача обрастает новыми изощренными методами, RFI становится доступным через протоколы, отличные от ftp и http... Что дальше? Поживем — увидим. Естественно, в наших рубриках :). z INFO info • Спасибо Античату за раскопки описанных уязвимостей. • LFI/RFI или просто «Local/Remote File Include» — наиболее часто встречающаяся уязвимость в phpскриптах. WARNING warning Внимание! Информация представлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут! DVD dvd • Все скрипты и примеры инклудов, упоминающихся в статье, ищи на диске. • На диске ты найдешь увлекательный видеоурок, позволяющий на практике увидеть перечисленные в статье способы инклуда. 063

Май - Xakep Online
Скачать - Xakep Online
ИюНь - Xakep Online
Январь - Xakep Online
Ноябрь - Xakep Online
Офисное западло - Xakep Online
ЛУЧШИХ ВИРУСОВ - Xakep Online
КОНКУРС - Xakep Online
JIT SPRAY АНАЛИЗ TDSS - Xakep Online
Скачать - Xakep Online
Скачать - Xakep Online
ЛЕГКИЙ ХАК - Xakep Online
Взлом GSM - Xakep Online
2009 - Xakep Online
7 ЧУДЕС KDE - Xakep Online
ВЗЛОМ ИНТЕРНЕТ-МАГАЗИНА: - Xakep Online
с татьи - Xakep Online
Ноябрь - Xakep Online
Untitled - Xakep Online
WebMoney - Xakep Online
c-лето ;) - Xakep Online
содержание 10 (59) - Xakep Online
PDF - Xakep Online
ЗАКАДРИ КАРДИНГ НАШИ ИДУТ! - Xakep Online
PDF - Xakep Online
PDF - Xakep Online
сишься, что левые трояны, вирусы и всякая про ... - Xakep Online
cамые лучшие материалы 1-4 номеров + вся ... - Xakep Online
шпион внутри - Xakep Online