ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
взлом<br />
curl "http://site.com/index.php?page=<br />
../../../../../../../../var/mail/wwwdata&cmd=phpinfo();"<br />
Также, стоит отметить, что mail-файл будет доступен только<br />
тому юзеру, кому и предназначено письмо (то есть, апач<br />
должен быть обязательно запущен под тем же пользователем).<br />
NULL-БАЙТ ОТДЫХАЕТ<br />
Снова включи воображение и представь, что все<br />
вышеописанные способы отлично работают, но<br />
уязвимое приложение содержит на этот раз следующий<br />
код:<br />
<br />
Как быть? Можно проинклудить логи, но в конце дописывается<br />
не обрезаемое обычным %00 расширение «.php».<br />
На этот раз тебе поможет фича (или все-таки уязвимость?)<br />
самого php, обнаруженная юзером популярного забугорного<br />
хакерского форума sla.ckers.org со странным ником<br />
barbarianbob.<br />
Фича заключается в том, что интерпретатор php во<br />
время обработки пути до какого-либо файла или<br />
папки обрезает лишние символы «/» и «/.», а также, в<br />
зависимости от платформы, использует определенное<br />
ограничение на длину этого самого пути (ограничение<br />
хранится в константе MAXPATHLEN). В результате, все<br />
символы, находящиеся за пределами этого значения,<br />
отбрасываются.<br />
Теперь давай подробней рассмотрим этот вектор LFI, обратившись<br />
к уязвимому скрипту следующим образом:<br />
curl "http://site.com/index.php?page=../../..<br />
/../../../../../proc/self/environ///////////<br />
[4096 ñëåøåé]////////&cmd=phpinfo();" -H<br />
"User-Agent: "<br />
Наш любимый phpinfo(); выполнится успешно из-за нескольких<br />
причин.<br />
1. Инклуд в самом скрипте примет следующий вид –<br />
<br />
XÀÊÅÐ 07 /127/ 09<br />
2. Так как наш путь получится гораздо длиннее, чем<br />
MAXPATHLEN (кстати, необязательно он будет равен<br />
именно 4096; в винде, например, он может быть равен<br />
всего лишь 200 символам с хвостиком, — советую на каждой<br />
системе тестить это значение отдельно), то символы,<br />
находящиеся в конце пути (в данном случае — некоторое<br />
количество слешей и «.php»), интерпретатор php, не спрашивая<br />
ни у кого разрешения, успешно отсечет.<br />
3. После пункта «2» наш код примет примерно такой вид:<br />
<br />
Как тебе уже известно, лишние слеши в конце пути<br />
услужливый php также обрежет, и наш злонамеренный<br />
код, в конце концов, превратится во вполне<br />
рабочий LFI!<br />
<br />
Для теста количества слешей для использования в данной<br />
уязвимости на своем сервере советую попробовать следующий<br />
php-скрипт.<br />
<br />
if($its_work=='1')<br />
{<br />
print 'Èñïîëüçîâàíî ñëåøåé: '.$i;<br />
}<br />
break;<br />
Рядом со скриптом просто положи файл work.txt с записанной<br />
в нем единичкой.<br />
Если инклуд произошел успешно, скрипт выведет тебе<br />
количество слешей, использованных для этого самого<br />
инклуда.<br />
Для полноты понимания технических сторон данного бага<br />
советую очень внимательно изучить соответствующие<br />
ссылки в сносках.<br />
И НАПОСЛЕДОК...<br />
Как видишь, прогресс в ресерчинге уязвимостей не<br />
стоит на месте. Новые баги находятся уже не в phpскриптах,<br />
а в самом интерпретаторе php! То, что раньше,<br />
казалось, взломать невозможно, сейчас представляется<br />
не более чем детской шалостью и развлечением<br />
для матерого хакера. Null-байт уже практически канул в<br />
лету, инклуд логов апача обрастает новыми изощренными<br />
методами, RFI становится доступным через протоколы,<br />
отличные от ftp и http... Что дальше? Поживем — увидим.<br />
Естественно, в наших рубриках :). z<br />
INFO<br />
info<br />
• Спасибо Античату за<br />
раскопки описанных<br />
уязвимостей.<br />
• LFI/RFI или просто<br />
«Local/Remote File<br />
Include» — наиболее<br />
часто встречающаяся<br />
уязвимость в phpскриптах.<br />
WARNING<br />
warning<br />
Внимание! Информация<br />
представлена<br />
исключительно<br />
с целью ознакомления!<br />
Ни автор, ни<br />
редакция за твои<br />
действия ответственности<br />
не несут!<br />
DVD<br />
dvd<br />
• Все скрипты<br />
и примеры инклудов,<br />
упоминающихся<br />
в статье, ищи на<br />
диске.<br />
• На диске ты найдешь<br />
увлекательный видеоурок,<br />
позволяющий на<br />
практике увидеть перечисленные<br />
в статье<br />
способы инклуда.<br />
063