Необычная защита от PHP Include

7 комментариев

Нестандартное мышлениеДавайте с вами подумаем кто такой хакер? Хакер — это не взломщик! Люди часто путают эти понятия. Хакер — это прежде всего человек с нестандартным мышлением, и в этом его сила, если можно так сказать.

Чтобы успешно противостоять хакеру, нужно также научится нестандартно мыслить. Как говорится, клин клином вышибают.

Сегодня я предложу вам очень необычный способ защитится от атак типа php include. Подходит он конечно далеко не всем. И если чесно защищает он не от самой атаки, а от ее обнаружения. Заинтриговал?
Читать далее →

Решаем проблему CGI и PHP.ini

3 комментария

phpВспоминаем статью PHP и CGI. Обход ограничений безопасности. Основная мысль:

В общем мало или много кто знает, что при подключении php к апачу через cgi, есть возможность конфигурировать чуть ли не каждый скрипт отдельно. А если более конкретно, то для каждой папки с php скриптами может быть создан свой файл php.ini со своими настройками, которые перезапишут глобальные настройки.

А это создает огромную брешь в безопасности, т.к. можно обойти любые запреты и ограничения указанные в оригинальном php.ini. Причем на  просторах интернета отсутствует какая либо внятная информация о запрете данного поведения

Наконец поднял для тестов сервер с fastcgi+php для тестов, и, во-первых, разобрался почему так происходит, а, во-вторых, нашел способ отключить это.
Читать далее →

SQL Injection Netcat 5.0 Extra

6 комментариев

1287749460_netcat_4_logo
Не так давно я уже писал о том что находил уязвимость в CMS NetCat. Но сегодня вот, совершенно случайно нашел еще одну уязвимость класса SQL Injection.

Уязвимость работает только на серверах где PHP работает через CGI (или FastCGI), сервера с PHP подключенным через модуль апача неуязвимы. Также необходима отключенная дирректива magic_quotes_gpc.

Если прикинуть соотношение подключения PHP к апачу через CGI и через mod_php как 50 на 50, и если считать что magic_quotes отключенны тоже в половине случаев, то получаем 25% уязвимых сайтов.

На оффициальном сайте написанно:

в 2012 году сайтов, успешно работающих на нашей CMS, создано более 18 000

Получается около 4500 уязвимых сайтов.

Уязвимость находится в генерации и обработке капчи.
http://netcat/netcat/modules/captcha/img.php?code=1'
Результат эксплуатации уязвимости отображается довольно забавно — на картинке =)

Подробнее о том как оно работает, как эксплуатировать и как защитится, читайте под катом
Читать далее →

Концепт защиты PHP сайта

24 комментария

Все мы, так или иначе, хотели бы быть уверенны в том, что наш сайт или блог никто не сможет взломать. Но увы, реальность такова, что любая система уязвима, как бы сильна она не была бы защищена. Все упирается лишь в ресурсы и в упорство взломщика… Хм… Что то меня не туда потянуло… Будем считать это предисловием =)

Не так давно я писал о том как правильно загружать файлы на сервер. Но допустим вы взяли уже готовую CMS и не знаете, как там реализованна загрузка, да и вобще вся защита. Конечно, особо пытливые и грамотные разработчики изучат код этой цмс прежде чем поставят на свой сайт. Но что делать тем у кого нет столько времени?

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

Нет, в статье вы не найдете какой-то супер пупер плагин, фильтрующий все данные, который нужно приинклудить ко всем файлам. Моя идея заключается в использовании директивы auto_prepend_file и постройки списка разрешенных файлов… Но в общем читайте сами…

Данная идея у меня давно сидела в голове, но наконец у меня дошли руки, хоть ничего сложного тут и нету, и я смог эту систему реализовать и написать статью =)
Читать далее →

XML Data Retrieval

2 комментария

DataRetrieval

Статья взята с Positive Research
(на данный момент, к сожалению, она не доступна на оригинальном сайте, и упоминаний о ней в интернете не осталось, но так как статья довольно интересная, то я решил выложить ее тут)

Язык XML потихоньку становится все более популярным, все чаще встречается в анализируемых веб-приложениях. И поэтому глубокие исследования в алгоритмах работы этого языка и создание новых способов атаки на него также становятся популярными: сейчас изучены техники, позволяющие читать данные с файловой системы с помощью ошибок (error-based attack), посимвольно перебирать содержимое XML-файлов с помощью XSD-схем (blind attack)…

Ничего не напоминает? :)

Да-да, когда-то давно таким же образом изучались атаки на язык SQL. Сейчас техники эксплуатации SQL-инъекций изучены максимально глубоко для большинства типов СУБД. Это же ждет и XML: он рано или поздно сдастся под напором пытливых умов. Мы же предлагаем вашему вниманию очередную ступень развития атак на XML, способ аналогичный методике Data Retrieval over DNS при эксплуатации SQL-инъекций.
Читать далее →

Почему надо чистить ноутбук

12 комментариев

Буду отходить от сложившегося мнения, что у меня в блоге только содержательные статьи) Здесь ничего интересного нет, простой рассказ о том как я разбирал ноутбук.

Вот и ответ на вопрос «почему надо чистить ноутбук»:
чистка ноутбука toshiba satellite a300
Какой интересный кусочек довольно плотного «войлока»)

У меня довольно старенький ноутбук Toshiba Satellite A300. Профилактику делал ему год назад, отдав в сервис (тогда он тоже начал сильно греться, но я побоялся сам его разбирать).

Но вот последнее время мой ноут опять стал очень сильно греться, тормозить, и при сильных нагрузках отрубаться совсем. Помогало снижение частоты процессора, но впрочем это припарки мертвому, ибо работать за таким компом нереально. Сегодня вот наконец решился почистить ноут.
Читать далее →

Правильный ресайз прозрачных картинок на PHP

25 комментариев

Черный фон при ресайзе прозрачных картинокЯ думаю каждый веб программист сталкивался с задачей ресайза картинок. Впрочем это касается не только ресайза, а любой обработки изображений в своих проектах. И думаю каждый уже имеет свой небольшой велосипед, класс, функцию которая ресайзит картинки. Но задумывались ли вы о том, что ваш велосипед наверняка не умеет работать с прозрачными картинками?

Честь и хвала тем программистам, которые могут удержать все в голове, и при написании подобного функционала они не забыли про прозрачность. А я вот забыл в одном из своих проектов… Хотя, чесно говоря, я взял нагугленный пример, чутка переделал для себя и встроил в проект. Но кто же знал, что клиент любит загружать прозрачные картинки…

В большинстве случаев отресайзенные картинки получали черный фон вместо прозрачного (как на картинке в заголовке статьи). Новый фон конечно может получится любого цвета, это все же зависит от самой картинки, и от ее формата. Но данная проблема известна все же как «черный фон при ресайзе прозрачных картинок».
Читать далее →

А как Вы загружаете файлы на сервер?

20 комментариев

«…или почему фильтрация по черному списку это плохо?»

Представим обычную загрузку файлов с помощью php. Я думаю все с этим сталкивались. Отбросим извращенные варианты, типа хранения файлов в базе, их переименовывание и прочее. Возьмем именно обычную наипростейшую форму загрузки файлов.

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

Встает вопрос, а как именно фильтровать расширения файлов? Существуют два варианта:

  • По белому списку — составляем список допустимых расширений файлов, а все остальные блокируем
  • По черному списку — составляем список блокируемых расширений, а все остальные загружаем

Беда в том что для реализации фильтрации по белому списку нужно предусмотреть все возможные варианты нужных расширений которые будет загружать наш скрипт. И если для мест где необходимо загружать только картинки — все просто, то во многих других случаях прийдется составить довольно большой список легитимных расширений. Поэтому многим разработчикам кажется, что следует пойти от обратного, и запретить опасные расширения.

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

Эта статья о том чем плоха фильтрация по черному списку, и как этот фильтр можно обойти. А также приятным бонусом добавлю способ обхода фильтра по белому списку (и даже это возможно! о как!)

Читать далее →

PHP и CGI. Обход ограничений безопасности

5 комментариев

Сегодня пришло вот в голову что неплохо было бы рассказать о такой интересной особенности связки php и cgi (и fastcgi тоже).

В общем мало или много кто знает, что при подключении php к апачу через cgi, есть возможность конфигурировать чуть ли не каждый скрипт отдельно. А если более конкретно, то для каждой папки с php скриптами может быть создан свой файл php.ini со своими настройками, которые перезапишут глобальные настройки.

Сегодня мне подумалось, что эту фишку можно использовать в корыстных целях. К примеру в php есть несколько различных опций настроек, таких как сейфмод или опенбейсдир… Догадываетесь к чему я клоню? Дада, их в связке php+cgi можно легко обойти! Читать далее →

Целый год…

14 комментариев

Ровно целый год я веду этот блог… Поздравляйте меня =)

Ровно год назад когда я начал вести этот блог, я обещал… В общем то много чего обещал… Обещал разработать свой php фреймворк. Обещал описывать процесс разработки своих веб приложений. ЦМС свою написать тоже обещал.

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

Но хватит о грустном =) Не без гордости скажу, что за этот год мой блог набрал посещаемость в 100-150 человек в стуки, и, честно сказать, мне очень приятно, что каждый день находится столько человек, которым мой блог становится чем-то интересен. Спасибо вам большое, мои дорогие читатели и просто случайные посетители моего блога!

Я подумал, что было бы неплохо рассказать о том как я провел лето этот год, и решил составить краткий обзор интересных тем, которые я писал за этот год. Сам обзор читайте под катом =)
Читать далее →