Search
Write a publication
Pull to refresh
1
0
postdig @postdig

User

Send message

Новые уязвимости доступа к файлам в PHP

Reading time8 min
Views30K
Какой-нибудь год назад все просто с ума сходили от Error-based MySQL, а unserialize казался чем-то сложным и не встречающимся в реальной жизни. Теперь это уже классические техники. Что уж говорить о таких динозаврах как нуль-байт в инклудах, на смену которому пришел file name truncated. Исследователи постоянно что-то раскапывают, придумывают, а тем временем уже выходят новые версии интерпретаторов, движков, а с ними – новые баги разработчиков.
По сути, есть три метода найти уязвимость: смекалка (когда исследователь придумывает какой-нибудь трюк и проверяет, работает ли он на практике), анализ исходного кода и фаззинг. Об одном интересном китайском фаззинге и его развитии с моей стороны я и хочу рассказать.

Список функций и результаты проверки
Читать дальше →

Обфускация JavaScript

Reading time5 min
Views197K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.

Первый способ


Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
function MyClass(){
    this.foo = function(argument1, argument2){
        var addedArgs = parseInt(argument1)+parseInt(argument2);
        return addedArgs;
    }
    var anonymousInnerFunction = function(){
        // do stuff here!
    }
}

В какой-то такой вид:
function MyClass(){this.foo=function(c,b){var d=parseInt(c)+parseInt(b);return d};var a=function(){}};

Или такой:
var _0xd799=["\x66\x6F\x6F"];function MyClass(){this[_0xd799[0]]=function (_0xefcax2,_0xefcax3){var _0xefcax4=parseInt(_0xefcax2)+parseInt(_0xefcax3);return _0xefcax4;} ;var _0xefcax5=function (){} ;} ;

Или вот такой:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0="3 5!";9 2(1){6(1+"\\7"+0)}2("8");',10,10,'a|msg|MsgBox|Hello|var|World|alert|n|OK|function'.split('|'),0,{}))

Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами JavaScript.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →

Медиа-сервер, собираем своими руками из найденного в «закромах родины»

Reading time6 min
Views52K
Кризис! Работы мало, времени много… никто не мешает навести порядок в закромах.

В результате получился полноценный мультимедиа компьютер с огромным экраном, беспроводной клавиатурой, мышкой, WiFi. С торрент качалкой, файло-помойкой, персональный веб-сервер. И все это под управлением страшной операционной системы Linux. Компактный корпус и уровень шума не мешает спать.
image
Читать дальше →

Ethernet термометр на основе Arduino

Reading time5 min
Views140K
Arduino

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

SSH2 в php5 + Mikrotik RouterOS, подводные камни

Reading time5 min
Views9.7K
Стояла задача: в цикле, из скрипта на php5 зайти по ssh на Mikrotik, сгенерировать скрипт с текущим конфигом, забрать скрипт на некое локальное хранилище. И так для ~500 роутеров. Так как в провайдерских кругах микротик весьма нередкий зверь — думаю кому-то ещё может пригодиться.

Так как глубоких познаний в тонкостях реализации ssh2 на микротике, в пхп, да и вообще — не имею, а сроки сильно ограничены, встретившиеся проблемы решал подручными средствами и инструментами, особо не заботясь об «элегантности».

В процессе обнаружилось следущее:
Читать дальше →

RPM-репозиторий своими руками

Reading time4 min
Views15K

О чем речь


Доброго времени суток, %username%.

Сегодня я хотел бы рассказать как легко и ненавязчиво создать свой rpm-репозиторий, а так же заполнить его оптимизированными под ваш любимый дистрибутив пакетами. И так, для этого нам надо: дистрибутив любимый одна штука(в моём случае это VZшка с Centos 5.5), rpm-build, mock, createrepo. Все пакеты можно обнаружить в стандартных репозиториях centos.
Читать дальше →

АТС Yeastar MyPBX 1600 — железный Астериск

Reading time3 min
Views25K
Еще одна статья про Астериск. На базе которого сделана мини-АТС. Это не компьютер, это отдельная железка, выполненная на базе чипа Blackfin.  Это АТС Yeastar MyPBX Standard 1600, которая недавно попала мне в руки с целью тестирования.

Этот небольшой обзор — ответ на утверждение cosmobot'а, который в комментарии к статье "Астериск для корпоративных клиентов" сказал, что «Советовать применять астериск для малого \ среднего не ИТ бизнеса в качестве штатной АТС на мой взгляд лукавство».

Честно говоря, я такого не ожидал. Это вещь способна заменить вашу офисную АТС Panasonic серии TA, TE и несколько VoIP-шлюзов, которые вы используете для подключения sipnet'а и внутренних SIP-абонентов. Далее техническое описание, фото и плюсы-минусы.
Читать дальше →

Ускоряем раздачу фоток

Reading time8 min
Views14K

С проблемой медленной отдачи статического контента рано или поздно сталкивается каждый сисадмин.

Проявляется это приблизительно так: иногда 3Kb картинка грузится так, как будто бы она весит 3Mb, на ровном месте начинают «залипать» (отдаваться очень медленно) css-ы и JavaScript-ы. Вы нажимаете ctrl + reload — и уже, вроде, проблемы нет, потом спустя всего несколько минут все повторяется опять.

Не всегда истинная причина «тормозов» очевидна и мы косо поглядываем то на nginx, то на хостера, то на «забитый» канал, то на «тормозной» или «глючный» браузер :)

На самом деле проблема в несовершенстве современного винчестера, который до сих пор не расстался с механическими подсистемами вращения шпинделя и позиционирования головок.

В этой статье я предложу Вам свое решение этой проблемы, основанное на практическом опыте использования SSD дисков совместно с web-сервером nginx.
Читать дальше →

Роутинг и policy-routing в Linux при помощи iproute2

Reading time6 min
Views283K
Речь в статье пойдет о роутинге сетевых пакетов в Linux. А конкретно – о типе роутинга под названием policy-routing (роутинг на основании политик). Этот тип роутинга позволяет маршрутизировать пакеты на основании ряда достаточно гибких правил, в отличие от классического механизма маршрутизации destination-routing (роутинг на основании адреса назначения). Policy-routing применяется в случае наличия нескольких сетевых интерфейсов и необходимости отправлять определенные пакеты на определенный интерфейс, причем пакеты определяются не по адресу назначения или не только по адресу назначения. Например, policy-routing может использоваться для: балансировки трафика между несколькими внешними каналами (аплинками), обеспечения доступа к серверу в случае нескольких аплинков, при необходимости отправлять пакеты с разных внутренних адресов через разные внешние интерфейсы, даже для отправки пакетов на разные TCP-порты через разные интерфейсы и т.д.
Для управления сетевыми интерфейсами, маршрутизацией и шейпированием в Linux служит пакет утилит iproute2.
Читать дальше →

Настройка и оптимизация MySQL сервера

Reading time9 min
Views317K
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Читать дальше →

Повышение производительности за счет блочного кеширования

Reading time5 min
Views5.7K
Тема блочного кеширования и ssi не раз проскакивала на Хабре. Ниже я представлю еще одну реализацию, использующего блочное кеширование, а также исходники фреймворка, использующего эти принципы, которые можно найти тут. А как это работает — прочитать ниже.
схема кеширования блоками
Читать дальше →

NAT на Cisco. Часть 2

Reading time4 min
Views45K
И снова добрый день, коллеги!

Продолжаю серию статей про NAT на Cisco, т.к. предыдущая статья все нашла некоторое количество положительных отзывов.

В этой статье мы рассмотрим, как и было обещано, inside destination NAT. Кому интересно — велкам под кат.

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

Твой GPS мониторинг

Reading time3 min
Views18K
Привет всем!
Под катом еще больше функционала, возможность прикрутки собственного мониторинга на любой сайт, мониторинг CDMA « Андроидов» и прочие вкусности, и как обычно — free!
Итак, уже было две статьи про начальный функционал, а потом про дальнейшее развитие нашего проекта по мониторингу автотранспорта, школьников-детей, любимых жен. Основным отличием, которым мы брали с самого начала, было конечно бесплатность, потом было первое (опять же бесплатное) «Андроид» приложение, а сейчас уже довольно большой функционал, который обогнал некоторые платные системы.
Читать дальше →

Linux HA на основе Pacemaker

Reading time5 min
Views126K
В своей предыдущей статье я вкратце коснулся темы создания High Availability решения на основе демона heartbeat. Однако, как выяснилось, что-то сложнее чем 2-х узловой кластер на нем делать не так уж удобно. Изучение проблемы вывело меня на след проекта Pacemaker. Его-то мы сейчас в кратце и рассмотрим.
Читать дальше →

Хостинг на AWS (EC2, EBS, S3) для чайников

Reading time4 min
Views139K
На хабре уже проскакивали периодически заметки посвященные AWS (Amazon Web-Services) — так что тема не новая. Однако, если для меня лично (да и для многих моих знакомых как выяснилось) — этот термин был знаком — однако каких-либо деталей я не знал. Попробую на основании только-что полученного опыта рассказать немного подробней, а так же изложить основные шаги по организации хостинга сервера на AWS и его преимущества. Как и несколько ссылок, которые могут оказаться полезными.
image
Читать дальше →

Ускоряем Drupal: Pressflow + Nginx + Varnish

Reading time7 min
Views21K
Данная статья достаточно подробно показывает, как можно перейти на разработку сайтов Друпал с серьезной стрессоустойчивостью и возможностью обрабатывать большой трафик.

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

Довольно долго для разработки я использовал связку Drupal + Nginx с настройками сервера по умолчанию:

server {
listen 62.xxx.xx.xx:80;
server_name mysite.com www.mysite.com;
rewrite>^(/manager/.*)$>https://$host$1>permanent;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass 62.xxx.xx.xx:8080;
proxy_redirect mysite.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass mysite.com:8080;
proxy_redirect mysite.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /home/pathto/drupal613;
access_log /home/httpd-logs/mysite.com.access.log;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass 62.xxx.xx.xx:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}


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

Сервер подсчета кликов

Reading time2 min
Views3.2K
Если ваш проект использует подсчет кликов и на нем есть какая-либо солидная нагрузка, то вы наверно задумывались об отдельном решении.

История разработки уходит в один проект торгово-рекламной площадки, где необходимо было учитывать кол-во переходов. Было решение на РНР. Но это давало видимую задержку в 0.5-1 сек, что очень раздражало разработчиков (в частности меня) и я думаю пользователей тоже.

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

Сказ о том, как я ставил неподдерживаемую Wimax/Wifi карту в Lenovo X201

Reading time10 min
Views114K
Попался мне как-то в руки в личное пользование ноутбук Lenovo X201 — отличная рабочая машинка.
Всё в нём вроде хорошо и всё вроде есть, но как обычно хочется большего — захотелось встроенный WiMax иметь (3G модем уже в нём есть и довольно хорошо работает).

image

Для WiMax была приобретена карта Intel WiMax/Wifi Link 5150 PCIe Mini Card.
После установки выяснилось, что оказывается большинство современных ноутбуков (в частности Lenovo) имеют White-list устройств, которые они поддерживают. Сделано это видимо для того, чтоб пользователи покупали только фирменные устройства в фирменных магазинах. Честно говоря я бы рад купить такое устройство, если бы у нас они свободно продавались (поправьте меня, если это так, может я не достаточно хорошо искал).
В частности мой ноутбук расстроился, увидев, что карточки, которую я ему подсунул нет в White-list и выдал мессагу:
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.
В случае установки неподдерживаемого 3G модема, вы получите сообщение:
1804: Unauthorized WAN card is plugged in - Power off and remove the WAN card.
Читать дальше →

Анонимность, доступная каждому

Reading time7 min
Views61K
imageВсем привет, давайте знакомиться.

Мы – Kebrum, сейшельская компания с русскими мозгами. Наш профиль – анонимность и безопасность в интернете, на данный момент мы запустили VPN сервис и не собираемся останавливаться на этом. Сначала расскажу коротко о сервисе для тех, кто не участвовал в бета-тестировании, а потом пару прохладных историй, как это полагается на Хабре.






Да, давайте знакомиться

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity