Я пытаюсь написать файл PHP на сервере и обойти расширение в конце.
Это файл PHP — 1.php:
<?php
file_put_contents("folder\\".$GET['file'].".PNG",$_GET['content']);
?>
Я пытаюсь обойти расширение PNG и написать файл PHP.
как это:
1.php?file=attack.php%00&content=blabla
но это не работает
Я старался:
Null char (%00,%u0000)
Long filename
CRLF chars
space char
?,&,|,>,<,(,),{,},[,],\,!,~,:,; chars
backspace char
../
протокол php
php://filter/write=convert.base64-decode/resource=1.php
(не будет работать, потому что папка в попрошайничестве)
У кого-нибудь есть идеи?
Спасибо!
Здесь есть несколько фундаментальных проблем;
../../1.php
и переписать этот файл, чтобы сделать все, что я хочу. Похоже, что вы проводите некоторое тестирование безопасности, так что я думаю, что это может быть проблемаphp://anything
не должно работать.folder\\
не имеет смысла, что это должно быть / делать?Тем не менее, хотя, в образовательных целях, готовящихся ../../
должен позволить вам вырваться из folder/
каталог.
Например, если это в /home/Zak/mytest/
с ожиданием каталога внутри этого folder
предназначен для хранения этих файлов PNG, а затем file
из ../../zak_homedir
должен положить файл в /home/Zak/zak_homedir.PNG
из-за относительного разрешения пути.
Других решений пока нет …