> > просто закачать свой скрипт на сервак и прямо в > require его > > подсунуть. > а тест на наличие директории? > unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2
Поясняю что я имел в виду:
если у тебя есть возможность создать файл на данном серваке, с заданным именем, например /tmp/111/filename
то ты можешь передать '/tmp/111' в качестве $mydir и он просто инклюднет твой файл, выполняя все комманды в нем прописанные. Но для этого надо иметь права создавать такие файлы.
> Надо сделать что бы и проверка прошла и require нашел свой > файл . > Вроде как это возможно :)
Пока я не вижу такой возможности. Проверку -d можно обойти при помощи %00, но это обрубит работу require т.к. там вызывается creat() который тоже обрубается на нульбайте.
Проблема в следующем, нужно так сформировать $mydir, чтобы обойти проверки 1 и 2 (помоему только 2), и втиснуть system(); в переменную $code, ну и потом собсно еval ее :)
обойти проверки на наличии директории я смог обойти с помощью вставки точки и нулевого символа (%2e%00), но не могу правильно вставить выражение в $code.
Жду Ваших предложений.
Заработало!!!06.05.03 18:10 Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
> просто закачать свой скрипт на сервак и прямо в require его > подсунуть. а тест на наличие директории?
unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2
дело в том, что я знаю расположение скрипта, который подключается,
т.е. получается вроде того , что мы вводим имя директории, а скрипт уже сам из нее нужный ему файл подключает,вся проблема как раз в проверке на наличие директории, мы ее обходим, и у нас не работает require, а сл. и код далее в eval
> > просто закачать свой скрипт на сервак и прямо в > require его > > подсунуть. > а тест на наличие директории? > unless (-d "$mydir") { $mydir = 'en';} #<= провекра №2
Поясняю что я имел в виду:
если у тебя есть возможность создать файл на данном серваке, с заданным именем, например /tmp/111/filename
то ты можешь передать '/tmp/111' в качестве $mydir и он просто инклюднет твой файл, выполняя все комманды в нем прописанные. Но для этого надо иметь права создавать такие файлы.
> Надо сделать что бы и проверка прошла и require нашел свой > файл . > Вроде как это возможно :)
Пока я не вижу такой возможности. Проверку -d можно обойти при помощи %00, но это обрубит работу require т.к. там вызывается creat() который тоже обрубается на нульбайте.