Просмотр полной версии : конец строки
Mastermind
01.08.2005, 14:07
есть некий 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
Наврятли,например идет так:
$script="$dir"."/doc.php";
Тогда хоть что подставляй работать не должно.
Символ конца строки - \n
В винде это \r\n
'\0' - символ конца строки
Zadoxlik
01.08.2005, 17:41
Это будет работать лишь в том редкостном случае если нулевой символ не прослешируется. Чего сейчас к сожалению встретить можно очень редко.
А реализовать в запросе этот символ просто - ?inc.php?dir=to_chto_nado.php%00
'\0' - символ конца строкиА я не согласен =) Умные люди проконсультируйте нас в этом вопросе...
1) Корректно ли мое рассуждение? не
00 - уже не символ конца строки, это обычный символ.
Mastermind
01.08.2005, 22:24
вообще в си символ конца строки \0, а \n - переход на следующую строку... но \0 надо определенным образом закодировать... а вот как? вообще в php конец строки ставиться вручную или автоматически?
P.S. Если тут кто-нибудь знаком с quest4hack, то там в последнем pro уровне как раз нужно было передать через http запрос строку содержащую на конце символ конца строки, для того чтобы избежать добавления .txt. Если я не ошибаюсь, то закодированный символ имел следующий вид: %2500... но там было что то типа двойного кодирования... %25 кодировал %... соответственно получали %00 - а это вроде и был закодированный символ конца строки...
соображения?
Скрипт наверняка был перловый...Как там бага называется? А ядовитый ноль.Так как перл написан на С от него и пошел символ %00(вроде как называют его нулевой байт)
А ядерный ноль
Хахаха)) Ядовитый ноль)) со стула упал, не в обиду))
ядерный ноль))))))))))
Mastermind НЕ МАТЕРИМСЯ у меня где то на комне валялся до сих пор хттп пакет...а нашел=)
вот)
POST http://quest.ghc.ru/pro/last/test.php HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, application/x-shockwave-flash, application/x-gsarcade-launch, application/x-icq, */*
Referer: http://quest.ghc.ru/pro/last/quest.php
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 50.50; LiNuX; SV1)
Host: quest.ghc.ru
Content-Length: 130
Pragma: no-cache
Cookie: cookietester=../index.html%2500.txt
quid=../index.html%2500&transf=здесьзначениябыликакя омню...&name=&mail=&web=&submit=Send
вот ребята ответили про ядерный ноль и другие...если не получится, посмотри может инклуд получится?
'\0' - символ конца строки
да , символ конца строки...видел в С++
А я не согласен =) Умные люди проконсультируйте нас в этом вопросе...
ну смотря с чем ты не согласен=) вообщето '\0' и есть символ концаа строки просто языки программирования не совпадают=)
НЕ МАТЕРИМСЯ - прим кез
По первых в некоторых PHP 4.x работает %00
Во вторых матом не пишем...
%00 будет резать в php скриптах, если php запущен как cgi
если php запущен как cgi
Имеешь ввиду php-cgi.exe ? Ее не юзают обычно
ScriptAlias /php/ "path2:/php/"
AddType application/x-httpd-php .php
Ее не юзают обычно
P.S. вот потому почти нигде и нельзя резать ;-)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot