![]() |
конец строки
есть некий php-скрипт index.php. ему передается строка. к этой строке он добавляет подстроку и далее работает с полученной в результате стыковки строкой.
Пример: 1) */index.php?dir=new 2) */index.php?dir=new/few Результат: 1) */new/doc.php 2) */new/few/doc.php т.е. идет добавление /doc.php Предложение: */index.php?dir=new/few/123.php[символ конца строки] --> */new/few/123.php[символ конца строки]/doc.php т.к. установлен символ конца строки, то /doc.php по идее отбрасываться и на самом деле должен быть вызван скрипт 123.php. т.е. мы получим */new/few/123.php Вопрос: 1) Корректно ли мое рассуждение? (Возможно ли это реализовать таким образом?) 2) Если да, то как представить символ конца строки? |
Наврятли,например идет так:
$script="$dir"."/doc.php"; Тогда хоть что подставляй работать не должно. Символ конца строки - \n В винде это \r\n |
Цитата:
|
Это будет работать лишь в том редкостном случае если нулевой символ не прослешируется. Чего сейчас к сожалению встретить можно очень редко.
А реализовать в запросе этот символ просто - ?inc.php?dir=to_chto_nado.php%00 |
Цитата:
|
Цитата:
00 - уже не символ конца строки, это обычный символ. |
вообще в си символ конца строки \0, а \n - переход на следующую строку... но \0 надо определенным образом закодировать... а вот как? вообще в php конец строки ставиться вручную или автоматически?
P.S. Если тут кто-нибудь знаком с quest4hack, то там в последнем pro уровне как раз нужно было передать через http запрос строку содержащую на конце символ конца строки, для того чтобы избежать добавления .txt. Если я не ошибаюсь, то закодированный символ имел следующий вид: %2500... но там было что то типа двойного кодирования... %25 кодировал %... соответственно получали %00 - а это вроде и был закодированный символ конца строки... соображения? |
Скрипт наверняка был перловый...Как там бага называется? А ядовитый ноль.Так как перл написан на С от него и пошел символ %00(вроде как называют его нулевой байт)
|
Цитата:
|
очепятался %)
|
| Время: 22:28 |