Цитата:
Сообщение от Cross
Добрый вечер.
Вопрос по php-include:
Не могу разобраться с конструкцией вида index.php?page=../../etc/passwd
Отчего зависит количество "../../"? Количество этих комбинаций следует перебирать от больше к меньшему? (к примеру наваять их штук 20 и по одной удалять). Есть тулза по автоматизации этого процесса? И кстати, т.к. фф конвертирует нулл-байт после каждого нажатия энтера...вообщем что тут посоветуете?
В теме "php-include", в постах юзеров, после знака = идут как .. так и /, т.е. инклуд начинается как с того так и сэтого символа, вперемешку...отчего это зависит?
Или есть мануал отвечающий на эти вопросы? (за целый день такого не нашел)
|
конструкции вида ../ обозначают каталоги (директории, папки и так далее) конструкция ./ в php обозначает текущий каталог. конструкция ../ обозначает переход к предыдущему каталогу минуя его имя.
то есть директория скажем /home/dir1/dir2/
используя ../ ты переместишься /home/dir1/ используя ../../ ты переместишься /home/ и так далее.
То есть путь на сайте:
/home/war/dir/www/site/www2/index.php
а пароли тут:
/home/etc/passwd (passwd - кстати файл, его часто путают с директорией)
тогда делаем так: /index.php?lol=../../../../../etc/passwd
Используем 5 пропусков директорий, и мы находимся в /home/ а далее поднимаемся в /ets/
Количество этих комбинаций на каждом сайте индивидуально, ибо у каждого своя структура директорий, у кого то больше, у кого то меньше. но не так уж и много. это вам не колонки к скулям =)))
И да, нул байт так же пашет не везде, потому что требует выключенных волшебных ковычек, а по умолчанию в конфиге они заразы включены во первых, а во вторых это небезопасно и глупо.