Уязвимость perl программ?
Метки: [без меток]
Испытал недавно удивление - кто-то влез на мой хостинг и переписал несколько файлов выключив тем самым сайт. Хостинг провайдер указал на уязвимость моих perl программ. Якобы пароли там всем открыты, на самом деле в одной программе только один пароль и он проверяется также просто if($param="password"){получаешь доступ и правишь} Раньше я полагал что считать скрипт-код невозможно из cgi-bin - в браузере получишь только то, что этот скрипт выводит (формы или ответы). Теперь же не уверен в этом.
Подскажите пожалуйста
Возможно ли из такой конструкции достать этот password?
Если да то как защитить этот password?
Можно ли командами .htaccess защитить право изменять конкретные файлы?
Посоветуйте где почитать полезно о командах .htaccess?
Подскажите пожалуйста
Возможно ли из такой конструкции достать этот password?
Если да то как защитить этот password?
Можно ли командами .htaccess защитить право изменять конкретные файлы?
Посоветуйте где почитать полезно о командах .htaccess?
Если у этого кого-то аккаунт на том же сервере, то ему не нужно лезть через HTTP (.htaccess, соответственно, ни при чём). Если на файловой системе не установлены соответствующие права, то он может со своего аккаунта прочитать любые файлы вашего аккаунта. Тут есть один нюанс — под каким пользователем выполняется Apache? Если он работает с правами вашего аккаунта, то вы можете дать доступ только себе (700 на корневой каталог) и проблем не будет. Если же у него общий аккаунт для всех пользователей, что тоже встречается на хостингах, то закрыть доступ не получится — вы закроете доступ и Apache, ваш сайт перестанет показываться.
Итого, читать man chmod.
Чтобы ответить на эти вопросы, надо знать, как они влезли на ваш хостинг. Может всё дело не в этой строчке. Или ваши скрипты позволяют делать что угодно на диске? А самый простейший способ защитить пароль — хранить его зашифрованным, подробнее — perldoc crypt
Скажите, а строчка приверки пароля действительно выглядит так, как вы ее написали? Если да, то это, извините, не проверка - это присвоение значения переменной. Оно всегда будет истину возвращать, а как следствие - ничем ваш скрипт не защищен.
Владимир Палант[досье] Хостинг valuehost. Единственное чем они пока объясняют ситуацию - эта строчка. Якобы вот открытый пароль. Хотя все еще никто меня не разубедил что иначе как обладая правами доступа к папке и программе ее код увидеть невозможно. Поправьте если не так. 700 на корневой каталог - это на www (в моем случае htdocs)? Выше у меня нет прав. А где бы почитать о man chmod - не посоветуете?
Андрей Новиков[досье] Мне тоже было бы интересно как. У хостера других вариантов пока нет. Не уверен поможет ли это, но в одном логе сайта обнаружил ссылку на http://konvent-plus.ru/ - не мой сайт, но похоже что подобный потерпевший, точнее ссылка была на некий файл http://konvent-plus.ru/forum/old.php именно такой же файл был загружен в мой корень и видимо он и делал все последующие изменения. Т.е. все пошло от загрузки в корень такого руля. Мои скрипты наврядли позволяют делать что угодно. Соответствующие проверки формата вводимых данных безусловно делаются.Елена Хрисанова aka mrskhris[досье] Нет конечно, просто выразился образно, на самом деле if($pwd ne "password"){запрет}else{доступ}
Андрей Новиков[досье] Мне тоже было бы интересно как. У хостера других вариантов пока нет. Не уверен поможет ли это, но в одном логе сайта обнаружил ссылку на http://konvent-plus.ru/ - не мой сайт, но похоже что подобный потерпевший, точнее ссылка была на некий файл http://konvent-plus.ru/forum/old.php именно такой же файл был загружен в мой корень и видимо он и делал все последующие изменения. Т.е. все пошло от загрузки в корень такого руля. Мои скрипты наврядли позволяют делать что угодно. Соответствующие проверки формата вводимых данных безусловно делаются.Елена Хрисанова aka mrskhris[досье] Нет конечно, просто выразился образно, на самом деле if($pwd ne "password"){запрет}else{доступ}
Легеров Алексей[досье], take a look at
command
field. Try now changing this command line...
Легеров Алексей[досье]
Мнда...
Мнда...
man chmod
вызывают в коммандной строке в любом Unix'е. Если нет под рукой Unix'а — набивают в Google. Первой ссылкой идёт эта: http://www.hmug.org/man/1/chmod.html
Все же, каким образом можно было записать этот old.php в корень (кроме подбора пароля к аккаунту)?
Всё же, какие права у вас стоят на каталогах, хотя бы на том же www? Если 755, то ваш пароль мог прочитать любой, у кого есть аккаунт на том же хостинге. И подбирать ничего не нужно было.
У www rw-rwx--- (670) - права которые устанавливались по умолчанию... к моему сожалению мало чего знаю о unix & apache - оттого не меняю. Что следовало бы поставить?
rwx------ (700) — но проверьте после этого, работает ли ещё ваш сайт. Если увидите ошибку 403, то вам не повезло и вам придётся оставить свой каталог открытым для всех. Хранить пароли зашифрованными, как посоветовал Андрей Новиков[досье], тем не менее поможет.
Да, с 700 сайт не работает и проявился ряд других глюков, например, мне теперь недоступны внутренние папки www из-за ошибки 550. Это уже решу.Владимир Палант[досье], расскажите пожалуйста что значит открыт для всех. На том же хостинге? Не значит ли это, что проблема не в пароле а в том что снова ко мне в корень можно записать программу типа old.php и управлять из нее файлами не взирая на пароли. Кстати говоря, тот самый пароль был только от одной моей конкретной программы, которая не дает исключительных прав и он никак не связан с фтп доступом или аккаунтом.
Легеров Алексей[досье], да незнают вашего пароля (или по крайней мере раньше), он вообще ненужен.
Хороша ситуация. Опускаем руки и меняем хостера? Если любой амбициозный неудовлетворенный зарегистрирует хостинг на VH и начнет удовлетворяться мне только это и остается?!
А если в .htaccess запретить php (я им не пользуюсь)?
А если в .htaccess запретить php (я им не пользуюсь)?
Легеров Алексей[досье] способов сломать сайт, конечно, можно. Например, если у Вас есть форма для закачки файлов на сервер, то есть возможность закачать php-файл и запустить его, а он, конечно, может сделать все.
очепятался в первом предложении: "можно" -> "много"
Есть форма для закачки файлов. Только по идее она контролирует адрес закачки, присваивает свое имя и расширение (jpg).
Про много я знаю... конечно же не претендую на неприступность - ломали мастеров посерьезнее. Просто хотелось бы выяснить истинную причину и исключить на будущее эту причину
Про много я знаю... конечно же не претендую на неприступность - ломали мастеров посерьезнее. Просто хотелось бы выяснить истинную причину и исключить на будущее эту причину