Цитата:
Сообщение от d0znpp
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
|
Как написано в манах, все эти функции
Returns TRUE on success or FALSE on failure.
Насколько я понимаю обычно они не используются по одиночке, так как организация xml парсера, требует
нескольких функции
http://www.php.net/manual/en/ref.xml.php
Далее когда пишут xml парсер то калбек задается довольно четко, и не дву смыслено.
Поэтому интересны два вопроса
1. Есть ли вообще уязвимости, где RCE осуществляется через эти функции?
2. Возможно ли только через одну из этих функции выполнить код?
--- stream_filter_register мы уже обсудили здесь https://rdot.org/forum/showthread.php?t=605&page=3
--- register_shutdown_function, была выше.
--- set_error_handler не особо может нам помочь, потому что в обычных скриптах, в нее обычно
вставлена функции которая как то обрабатывает ошибки, а передать в нее что то типа preg_replace, не выйдет, тока phpinfo (то есть без аргументную пользовательскую функцию PHP)....
P.S. кстати там рядом еще одна статейка лежит
http://php-security.org/2010/05/24/mops-submission-09-rips-a-static-source-code-analyser-for-vulnerabilities-in-php-scripts/index.html
так вот в ней есть тоже довольно интересные наводки, например
mb_ereg_replace и mb_eregi_replace
http://php.net/manual/en/function.mb-ereg-replace.php
http://www.php.net/manual/en/function.mb-eregi-replace.php
, эти функции как и preg_replace, можно использовать в калбек функциях, причем, есть бага
http://bugs.php.net/bug.php?id=48180, позволяющая несколько расширить возможности