Конкурс: Тур#1 Взлом PHP-скриптов

Будете участвовать?

  • Да, обязательно

    Голосов: 14 23,7%
  • Не обладаю достаточной квалификацией

    Голосов: 24 40,7%
  • Нет, мне это не интересно

    Голосов: 4 6,8%
  • Их невозможно взломать..

    Голосов: 0 0,0%
  • Нет, нет времени..

    Голосов: 17 28,8%

  • Всего проголосовало
    59
  • Опрос закрыт .

traip

Guest
моё решение было такое:
// php.ini
// safe_mode = on
// safe_mode_allowed_env_vars =HTTP_ SERVER_ PHP_
// добавить другие вары если треба.

$host="vasya.ru";
putenv("HTTP_HOST=$host");
putenv("SERVER_NAME=$host");
// .... и другие вары если треба.

include("hack_me_zend.php");
 

traip

Guest
т.е. вместо
$host="vasya.ru";
надо
$host="www.phpclub.net";
 

Inba

Guest
> young

Ну во первых не у всех он только localhost слушает - изврат конечно, но...

К тому же если кулхацкер знает пароль он может (если люди с сервака написали web-интерфейс):
а.) Если в форме для доступа к web-интерфейсу вводится имнно этот пароль - он просто введёт его.
б.) Может написть html файл с формой, которая будет эмулировать реальную - тоже способ, причём не очень сложный. Проверка то пароля в скрипте сделана - а скрипт у кулхацкера есть!
в.) Он может захоститься там же где и наш бедный сервак - тогда он будет седеть на том же localhost'е!

Все ситуации, были опробованы и привели к положительному результату... правда пароль я не из исходника выдрал, а вполне легально у друга спросил.

P.S. К тому же не надо забывать, что в программинге нет ничего невозможного...
 

anight

Новичок
ioncube побежден (встроенная защита по ip)
[skip....]
остальное - как и в случае с zend encoder
HTTP_HOST=phpclub.net
и без запарок запускаем скрипт.

p.s. на поиск [skip...]
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
В связи с вышесказанным, вариант защиты от запуска своих скриптов "на стороне", который мне пришел в голову - это создать авторизующий сервер.

Можно сделать систему - скрипт на основном хостинге обращается к другому сайту за каким-либо кодом (содержащим, например, текущую дату), и записывает этот код в файл или БД.
Код содержит дату, зашифрованную с использованием приватного ключа (который есть на 2м хостинге) и расшифровывается открытым ключем (на основном хостинге). Когда код экспайрится, скрипт идет за новым кодом, а без этого кода скрипт не запустится.

Скрипт на втором хостинге может проверять ip, с которого обращаются.

Главный вопрос - надежность шифрования основного скрипта, например, Zend encoder-om.
 

Matrix

Guest
Браво, grigori! :)

Делаем два сервера --

1. application server, на котором собсно крутится наше приложение,

2. web server -- на котором к нашему приложению щемятся юзеры и т.п.

весь критичный код, который надо скрыть -- размещаем на 1-м сервере; все, что ценности не составляет -- на втором.

Сегодня это называется webservices (http://www.webservices.org/)


PS. естессно, что 1-й сервер должен быть защищен лучше второго, например, co-location у именитого провайдера, либо собственный канал в офис, а сервер -- в сейфе :), а 2-й сервер -- как получится. :)

PPS. Увы, но для PHP об этом рано еще говорить. подождем 5.0 и SRM.
 

jorj

Guest
Ломать свой собственный скрипт со своего сервера нет проблем.

Меня больше интересует, как взять чужой скрипт с сервера,
как в предыдущем сообщении.

Ломать скрипты интереса нет, больше волнует вопрос защиты от доступа
 

jorj

Guest
Для Matrix

Если платформа Windows, легко решается трех-уровневая схема, php4 работает с Com серверами, вот под Линухом???

Хотя можно очевидно адресоваться и через HTTP, если поставить два сервера. В этом что-то есть.
 

burzum80

Guest
Автор оригинала: DVLev
Меня больше интересует можно ли как-то выкачать код скрипта с сервера провайдера при условии, что доступ к админу провайдера с водкой затруднен (это по поводу начала темы).

Иначе говоря возможно ли используя ошибки PHP загрузить в браузер не результат выполнения скрипта, а сам текст скрипта?
Можно...если залить туда свой скрипт =) Закачиваешь свой скрипт, который всё файло тебе на мыло отправляет и вся недолга :)
 

Alexandre

PHPПенсионер
Если платформа Windows, легко решается трех-уровневая схема, php4 работает с Com серверами, вот под Линухом???
СОМ - не СОМ - принцып 1....часть функционала кода пишешь либо на С, либо на др. языке и его делаешь в виде исполняемого или подгружаемого модуля....так же можно использовать и классы java.
Только вот расположены они должны быть не в WEB дирректории....

только вот Вопрос следующий: а если это хостинг?
то хозяин хоста может:
1 просто украсть твой скрипт и все его примочки...
2 не разрешить тебе писать в др. место, хотя многие хостеры дают каталог DATA который находится за пределами WEB пространства...
3. не разрешить тебе запусткать твои модули....что наиболее вероятно! (хотя за определенные деньги можно обо всем договориться )
 

Alexandre

PHPПенсионер
PPS. Увы, но для PHP об этом рано еще говорить. подождем 5.0 и SRM.
ну почему рано говорить... сделай связь по сокетам... PHP позволяет...
или реализуй часть функционала как java класс. PHP тоже позволяет....
еще можно написать программу которая:
1. читает ключ из файла, который недоступен из WEB
2. читает имя скрипта, который передается как параметр
2 дешифрует скрипт по ключу (например PGP)...
3 выполняет скрипт командой eval...

если честно, то этот способ не пробовал....

СОРРИ - идея оказывается уже не нова
 

Alexandre

PHPПенсионер
ну и еще один способ защиты - более простой...
часть скрипта держать в БД. mySQL или иной.... в виде шаблона...
и его читать и выполнять командой eval.

так у меня построен движок для сайта (дорабатываю если интерестно, то исходники могу кинуть ).....

если крадется скрипт, то надо еще и красть данные из DB- что немножко сложнее...

правда всегда есть опастность, что пароль и логин могут быть прочитан...
ну на этот счет есть стандартное решение - его держат в отдельном файле, который за пределами WEB сервера....хотя для хакера со стажем и это не проблема!
 

Scarab

Guest
А насколько вообще актуальна тема?

Я понимаю вопрос о том, как писать скрипты, которые можно/нельзя сломать снаружи, передав скрипту некорректные данные. Но сейчас-то речь, я так понимаю, о возможности спереть скрипт одного пользователя другим? А это уже проблема хостера, а не программиста - как защитить одного пользователя от другого. На "экспрессе" (светлая ему память) испокон веков апач был подпилен на предмет работы из-под соответствующего юзера, так что там на юзерские каталоги стояло 700 - и ни у кого проблем не было. И это нормально.
Такой патч даже у не самого крутого программера займет ну пару дней - и то если делать по уму. Ну а если хостер не хочет или не может обеспечить защиту - то я к такому хостеру на километр не подойду, не то, чтобы держать что-то серьезное у него.

А в свете таких вещей, как VPS (см., например, www.rusonyx.ru) - проблема вообще отпадает - покупаешь себе за $17/мес. виртуальный сервер и не знаешь горя. Я думаю, что каждый, кто ценит свои скрипты, может себе это позволить, ибо $17 - не деньги.

Так что, IMHO - все это приятная гимнастика для любителей потрахаться с дебуггерами, но не более того.
 
Сверху