Уголок мусульманинаО земных поклонах
Сообщается, что вольноотпущенник посланника Аллаха, да благословит его Аллах и да приветствует, Абу Абдуллах (или же Абу Абд ар-Рахман) Саубан, да будет доволен им Аллах, сказал:
Я слышал, как посланник Аллаха, да благословит его Аллах и да приветствует, сказал: «Ты должен совершать множество земных поклонов, ибо, поистине, за каждый земной поклон, совершённый тобой ради Аллаха, Аллах возвысит тебя на (одну) ступень и снимет с тебя (бремя одного) прегрешения». (Муслим)
|
|
|
Безопасность: защита сайта, меры, противодействие |
|
|
halsoft |
Сообщение # 1
|
Есть прописка
Репутация: 25
Группа: Посетители
Пол: мужской
Сообщений: 292
|
Буквально 2-3 недели назад мой сайт взломали (точнее сказать, получили доступ ко всей базе). Благо, это был муслим, чеченец, который решил проверить найдёт ли он у меня уязвимость. Он сразу отписался на форуме, пояснил где он находил дыру и как воспользовался им (sql инъекции).Как выяснилось, этих дыр много, очень много. Я был в недоумении - как так? Ведь я каждый запрос оформлял как
select * from table where param = '$_GET[param]'
то есть используя апострофы, что предотвращает инъекцию и вроде php magic_quotes_gpc тоже был включен.
Перестал я надеяться на магические кавычки и ввёл свою защиту на проверку пост и гет данных на ключевые слова select, char, where, from, delete и т.д. и как только обнаруживалось совпадение чистил тот или иной параметр.
После предложил нашему хакеру снова провести ревизию, тот уже не смог больше ни обычные, ни блайнд инъекции, ни что либо еще сделать и получить доступ к базе.
Потом спустя некоторое время гуляю себе в панели своего хостинга, случайно так захожу в настройки php и вижу magic_quotes_gpc OFF. OMG подумал я, быстро его включил и снёс защиту, которую делал сам (зачем делать проверку, если уже защита включена и нести дополнительную нагрузку на сервер).
Решил сам проверить через программы, которые мне скинул уже знакомый мне хакер, получится ли теперь сделать инъекцию. Попробовал несколько раз на нескольких страницах, где ранее были обнаружены дыры, не получилось и я вздохнул с облегчением.
Многие говорят, что php magic_quotes_gpc можно обойти, но конкретного примера я не нашел, искал как в рунете, так и на англоязычных сайтах. Нет, 100% эффективного способа не нашел.
Теперь мне интересно - как чеченское IT сообщество решает проблему с защитой от разных атак, в части от инъекций свои сайты? Знают ли они способ обойти защиту, которую я использую сейчас? Сталкивались ли они с хакерами и приключались ли истории взлома?
Интересно послушать не только про инъекции, но и про другие виды взлома и, соответственно, про методы, разработанные против них :)
|
|
|
кацимодо |
Сообщение # 2
|
Govz-Профессионал
Репутация: 116
Группа: Доверенные
Пол: мужской
Сообщений: 2564
|
и опять дебри, для меня.
|
|
|
bugmenot |
Сообщение # 3
|
Активный форумчанин
Репутация: 83
Группа: Доверенные
Пол: мужской
Сообщений: 739
|
Сейчас посмотрел, у меня отключена т.к. cmsка не дружит с этой фичей. Еще рекомендуется register_globals=Off в целях безопасности. Сам особо не боюсь за сайты т.к. неплохой движок, самописных нет, больше опасаюсь за сам сервер, т.к. не профи в настройке, все по мануалам, некоторое по-дефолту. Но в общем FTP отключен, из под root не захожу, ssh подключение через ключи, но интересно было бы потестить)) этот чувак серваки не ломает?)
Думаю еще хорошая защита это грамотно поставленный периодический backup, до этого тоже пока руки не доходят. Интересно, как и чем бэкапите?
--------------------
Свободы ветер, свободна милая Чечня...
|
|
|
halsoft |
Сообщение # 4
|
Есть прописка
Репутация: 25
Группа: Посетители
Пол: мужской
Сообщений: 292
|
Цитата: bugmenot этот чувак серваки не ломает?)
Вот это я не знаю, но могу те в личку его почта скинуть :)
Цитата: bugmenot Интересно, как и чем бэкапите?
К счастью, целый сервер держать и контролировать не приходится. У меня простой хостинг, который сам делаем бэкапы каждые 2 или 3 дня, точно не помню.
А что тебя подтолкнуло на покупку сервера?
|
|
|
bugmenot |
Сообщение # 5
|
Активный форумчанин
Репутация: 83
Группа: Доверенные
Пол: мужской
Сообщений: 739
|
Цитата: halsoft А что тебя подтолкнуло на покупку сервера?
Меня на это подтолкнула дороговизна shared хостингов и акция от Amazon, бесплатный облачный сервер (виртуальный micro instance) на год
Виртуальный сервер в формате micro на основе Linux с доступом по SSH.
10Гб места в Elastic Block Storage плюс 1Гб под бэкапы.
15 Гб трафика в месяц.
Выделенный внешний IP адрес
howto на хабре
--------------------
Свободы ветер, свободна милая Чечня...
|
|
|
0x90 |
Сообщение # 6
|
Есть прописка
Репутация: 40
Группа: Посетители
Пол: мужской
Сообщений: 347
|
Цитата: halsoft Многие говорят, что php magic_quotes_gpc можно обойти, но конкретного примера я не нашел, искал как в рунете, так и на англоязычных сайтах. Нет, 100% эффективного способа не нашел
Очень интересно. Дай знать, если найдешь что-нибудь по этому поводу.
По сабжу ничего толкового сказать не могу.
--------------------
Нет рабства безнадежнее, чем рабство тех рабов, себя кто полагает свободным от оков.
|
|
|
halsoft |
Сообщение # 7
|
Есть прописка
Репутация: 25
Группа: Посетители
Пол: мужской
Сообщений: 292
|
Цитата: bugmenot howto на хабре
Ты приглашал бородатого линуксоида? )) не, я не силен в настройке сервера, лучше уж оставлю это дело другим
|
|
|
halsoft |
Сообщение # 8
|
Есть прописка
Репутация: 25
Группа: Посетители
Пол: мужской
Сообщений: 292
|
Цитата: 0x90 Очень интересно. Дай знать, если найдешь что-нибудь по этому поводу. По сабжу ничего толкового сказать не могу.
Единственно понятное, что я нашел об этом вот здесь
Внимание! У вас нет прав для просмотра скрытого текста. Необходимо 10 сообщений.
Но я не догоняю, как в пост запросе передать chr(0xbf)? или chr(0x27)? И какой смысл, если данный способ не применяется к utf-8?
|
|
|
bugmenot |
Сообщение # 9
|
Активный форумчанин
Репутация: 83
Группа: Доверенные
Пол: мужской
Сообщений: 739
|
За те несколько недель что я с ним промучился, у меня бы у самого борода выросла (если бы ее раньше не было)). С линуксом подружился давно, но в конфигах не уверен, а да ладно) если удастся накатить сверху nginx то думаю будет вообще супер. А пока есть простенькая панелька, апач, мускул, sftp, ssh и root которых на шареде не допросишься и вообще огромное поле для экспериментов))
--------------------
Свободы ветер, свободна милая Чечня...
|
|
|
halsoft |
Сообщение # 10
|
Есть прописка
Репутация: 25
Группа: Посетители
Пол: мужской
Сообщений: 292
|
Цитата: bugmenot и вообще огромное поле для экспериментов
Вот вот, чисто ради этого и стоит помучаться :) интересно, на нем сервер cs можно запустить? )))
|
|
|
0x90 |
Сообщение # 11
|
Есть прописка
Репутация: 40
Группа: Посетители
Пол: мужской
Сообщений: 347
|
Цитата: halsoft Но я не догоняю, как в пост запросе передать chr(0xbf)? или chr(0x27)?
Немного не понимаю тебя, не обязательно же его с клавиатуры набивать))
Цитата: halsoft И какой смысл, если данный способ не применяется к utf-8?
Практически никакого :(
--------------------
Нет рабства безнадежнее, чем рабство тех рабов, себя кто полагает свободным от оков.
|
|
|
halsoft |
Сообщение # 12
|
Есть прописка
Репутация: 25
Группа: Посетители
Пол: мужской
Сообщений: 292
|
Цитата: 0x90 Немного не понимаю тебя, не обязательно же его с клавиатуры набивать))
Смотри, он говорит, что addslashe() превращает сочетание 0xbf0x27 в двойной символ, второй из которых апостроф. Как через пост передать символ, который имеет код 0xbf0x27?
В примере он показывает
$_POST[name] = chr(0xbf).chr(0x27);
применяет chr() - так ведь при взломе у меня нет вариантов встраивать эту функцию в код страницы? Если бы он у меня был, так и взламывать нечего, и так я б имел доступ ко всему остальному ))
|
|
|
0x90 |
Сообщение # 13
|
Есть прописка
Репутация: 40
Группа: Посетители
Пол: мужской
Сообщений: 347
|
Цитата: halsoft применяет chr() - так ведь при взломе у меня нет вариантов встраивать эту функцию в код страницы?
Так это и не нужно, между chr(0xbf) и %bf нет разницы, Скорее всего автор делает это просто ради наглядности. Посылаем такой пост запрос.
curl_setopt($curl, CURLOPT_POSTFIELDS, "url=%bf%27")
curl_exec($curl);
--------------------
Нет рабства безнадежнее, чем рабство тех рабов, себя кто полагает свободным от оков.
|
|
|
0x90 |
Сообщение # 14
|
Есть прописка
Репутация: 40
Группа: Посетители
Пол: мужской
Сообщений: 347
|
%bf
Я не помню точно каким символом в php внутрь строки вставляют hex`ы, но смысл думаю ты понял.
--------------------
Нет рабства безнадежнее, чем рабство тех рабов, себя кто полагает свободным от оков.
|
|
|
halsoft |
Сообщение # 15
|
Есть прописка
Репутация: 25
Группа: Посетители
Пол: мужской
Сообщений: 292
|
Цитата: 0x90 curl_setopt($curl, CURLOPT_POSTFIELDS, "url=%bf%27")curl_exec($curl);
Всё, догнал. Можно у себя всё это делать, а потом отправлять. Тестирую, пока ничего не получается
|
|
|
virtual |
Сообщение # 16
|
Местный житель
Репутация: 19
Группа: Посетители
Пол: мужской
Сообщений: 165
|
magic_quotes можно обойти методами типа char, но это не прокатит если код уже не инжектирован, т.е чтобы закрыть кавычку надо поставить кавычку, никакие char тут не помогут, имеется ввиду что для первой кавычки закрытием которой обычно инжектят код обход невозможен
вместо ' выйдет \', а если сделать CHAR(27) то опять таки фунция не выполнится, потому что она попадет внутрь кавычек, а значет будет восприниматься как текстовым значением а не как функция.
--------------------
Поможем экосистеме - прекратим существование!
|
|
|
virtual |
Сообщение # 17
|
Местный житель
Репутация: 19
Группа: Посетители
Пол: мужской
Сообщений: 165
|
http://forum.antichat.ru/thread43966.html
--------------------
Поможем экосистеме - прекратим существование!
|
|
|
halsoft |
Сообщение # 18
|
Есть прописка
Репутация: 25
Группа: Посетители
Пол: мужской
Сообщений: 292
|
virtual,
А ты прочитал ту статью, которую я привел
Внимание! У вас нет прав для просмотра скрытого текста. Необходимо 10 сообщений.
Некий Крис дает советы. Каково твоё мнение о статье?
|
|
|
virtual |
Сообщение # 19
|
Местный житель
Репутация: 19
Группа: Посетители
Пол: мужской
Сообщений: 165
|
Это статья показывает что если есть возможно использования китайских символов, то можно использовать мультибайтовую фигню вместо ('), но там же оговороено что
If you want to try this yourself, make sure you're using GBK. I just changed /etc/my.cnf, but that's because I'm testing locally:
default-character-set=GBK
т.е надо на сервере поставить дефолтной кодировку GBR, а как ты это сделаешь если ты не владеешь сервером? А если ты владеешь сервером зачем делать инъекции в какой-то скрипт?)))))))))
--------------------
Поможем экосистеме - прекратим существование!
|
|
|
virtual |
Сообщение # 20
|
Местный житель
Репутация: 19
Группа: Посетители
Пол: мужской
Сообщений: 165
|
хотя его слова какие-то расмплывчатые, он говорит что сам делал локальные тесты, короче надо в коде php для атаки поставить кодировку GBR и попробовать оттуда выполнить инъекцию, в любом случае надо тестировать))
--------------------
Поможем экосистеме - прекратим существование!
|
|
|
|
|
|
|
|