danforth: Я понимаю что ты фанатик питона и джанги, но даже на них нужно писать хоть сколечко отказоустойчивое и оптимизированное приложение.
У меня месяц назад (да, именно тогда) на тестовом хостинге произошло одновременно два события - один эникейщик решил устроить взлом/дос/проверку_безопасности одного скрипта. В это время заглючило железо на хостмашине где живет вдс. Специально выяснял что это таки железо, а не падение под нагрузкой. Совпадения бывают, да.
Не знаю кто из вас тут прав, просто в тему.
Futuris: Ну и работу вы проделали. Буду осмысливать. Спасибо!
Да сколько там той работы). Всегда знал что такие псевдозащиты именно что псевдо, но на практике колупать не пробовал.
Ну и да, это меня окончательно убедило что свой фреймворк буду под MIT выкатывать. А то со своими страхами форка выгляжу как эти ребята защищая свою "курсовую".
Futuris: В принципе кода там немного. Ручками возьму и пересмотрю в редакторе.
минифицированный пхп-файл? (явно как альтернатива обфускатору).
Или такой же минифицированный жс?
Бросьте это гиблое дело.
Тут или сканер какой натравить или забить.
Разработчики принципиально не хотят чтобы у них искали ошибки, и очень ценят свой труд).
---------- Добавлено 31.03.2017 в 12:59 ----------
АПД: Не хочу повторять слова одного кульхацкера, но мне кажется что XSRF там должен быть наверняка. Но... зачем оно вам в принципе? Я имею ввиду зачем вам это проверять?
Бегло посмотрел демку, как я понял это велосипед на тему jstree и ace. Ну загрузчик файлов еще вестимо.
Судя по беглому просмотру кода мне показалось что редактор они решили сами переизобрести.
Без велосипедизма в редакторе - такие вещи пишет каждый второй программист на том или ином этапе своего развития. Дырявое оно или нет - не важно.
Не будет вас никто целенаправленно ломать. А от автоматического взлома оно скорее всего защитит.
---------- Добавлено 31.03.2017 в 13:34 ----------
АПД: вру, оно таки обфусцировано немного. Но в целом вскрывается консервным ножом. Обфусцированно руками, не нормальным софтом, т.е. это стиль у людей такой. Т.е. автор мыслит так, чтобы сложно было прочитать).
Я сначала подумал что это чтобы запутать, но вот такие обороты явно не обфускатором деланы:
final class a { private $a; private $h; public function __construct() { $this->a['a'] = $_GET; $this->a['b'] = $_POST; $this->a['c'] = $_SERVER; $this->a['d'] = $_COOKIE; $this->a['e'] = $_FILES; } ..... public function e($a, $b = false) { if (isset($this->h['d'][$a])) return $this->h['d'][$a]; else if (isset($this->a['d'][$a])) return $this->h['d'][$a] = $this->g($this->a['d'][$a], $b); } private function g($a, $b) { if ($b && ($c = 'g_' . $b) && method_exists($this, $c)) return $this->$c($a); else return $a; } private function g_sha1($a) { preg_match('~^[a-z0-9]{40}$~i', $a, $b); if (isset($b[0])) return $b[0]; } }
Ну т.е. именование такое может быть искусственным, циклический вызов этого может быть исскуственным, но передача третьего параметра в прег_матч, который неинициированный, вот эти гет-посты в конструкторе, финал, приват/паблик без протекта... всё это признаки именно стиля.
Реальных уязвимостей не нашел, но вот такие вот обороты вызывают вопросы:
SeVlad: Мне вот что интересно - почему так никто и не сказал ТСу, что "поисковые роботы" находят не php-скрипты, а html-страницы?
Да он настаивает на своей версии что его атакуют роботы с целью увидеть исходники когда от глюка апач "забудет" что пхп нужно выполнять и будет отдавать как статику.
В истории такие случаи были. Давно. Редко.
Но человека не переубедить, так что смысл капитанить?
umercomp: Простите, у Вас имбецилы работают, раз при попытках взлома к логам догадываются обратиться через н-ный промежуток времени? Вопрос риторический.
Имбецилы это те кто дает эмоциональную оценку чужим бизнес-процессам по экспресс-оценке трех строк поста).
Ваша оценка моих умственных способностей сродни оценке нашего решения этим кульхацкером).
Оргвопросы решались оперативно. Даже техдира хостера (спасибо гиперхосту) разбудили для некоторых подробностей.
А читать логи неудавшегося взлома когда автор атаки известен и опознан, и уровень квалификации деятеля - крайне низкий? А смысл? Я бы вообще их не читал, просто вчера добрался до этих логов по другой причине. Выполнял совершенно другие, не связанные с этим инцидентом манипуляции, обратил внимание на одну "странность". Задумался. Предположил что это период того инцидента. Проверил. Да, именно тогда. Раз наткнулся, то прошелся чуть подробнее.
У чувака был по сути полный карт-бланш. Ему не просто выдавали 500 или 403 на его "шалости" а подробно выдавали описание. XsrfException или ActionNotFoundException, да и даже если и ForbiddenException то со стеком дебаг_бектрейса. Т.е. включен подробный лог, включен ДЕВмод с выдачей всех нотисов в браузер и т.п. И чувак ничего не нашел. Совсем ничего.
Что мне было искать в логах?
Сайтов то много есть. На клиентские скрипты сайты регулярно кто-то ломится. Ну что я там найду?)
Ну нашел да. Нашел что ломились по аяксу, ломились с куками, авторизованные, правильно подставили не только права админа (да, у атакующего были админские логино-пароли), но и всякие XSRF-маркеры и т.п. Ничего сложного. Я не специалист по безопасности, я вон не знаю всяких софтов (ну кали линукс конечно знакомое название, но ставить не ставил), но руками я все такое делаю и делал.
Меня смутило что чувак совсем сырой, явно каким-то софтом рыл, а запрос был к месту.
(Механический сканинг виден по времени между запросами и их массовостью, а также то что пробовали через форму заливки файлов скачать /etc/password при этом даже не вытаясь нащупать что-то другое через нее же, хотя ежу понятно что такое только при очень большом везении прокатит, да и "тестировали"/атаковали софт, а не сервер).
danforth: Вы в NASA работаете? Или единственные, кто мог сделать за озвученный бюджет? Или там просто ваша поделка, которую только вы в состоянии поддерживать?
Это американская компания.
Они обращались к энному количеству разработчиков.
Все говорили им что это принципиально невозможно сделать, и вопрос не в бюджете а в том что задача не решаемая.
Мы согласились. Бюджет назвал клиент.
Мы естественно согласились за верхнюю планку).
ТЗ было ужасным (вернее его не было).
АПИ систем с которыми интегрировались ужасный,
все данные везде забивались задней левой ногой.
Основная сложность была в том чтобы придумать что же именно с этим делать,
потом сложность была выйти за рамки видения заказчика и решать именно потребность заказчика а не его видение.
Ну и на закуску была еще чудесная задача по нормализации того ужаса что они позабивали в первичку. Опечатки, дубли и т.п., учет в совершенно другой системе координат, в общем полный набор нормализации. Причем взять и все остановить, поприделывать везде нормальный SKU (артикул), создать таблицу отождествления 1 к 1 было нереально ибо данные поступают live, плюс основной фишкой было сопоставление исторических данных и текущих. Ну и штат персонала продолжает добавлять номенклатуру исходя из их кривого формата.
Сделали несколько словарей перевода, сделали преобразование в несколько этапов, чтобы даже новая ошибочно забитая позиция попадала более-менее близко к нужному месту, и потом уточнялась...
В общем обычная рутина автоматизации управленческого учета где в основе типовая бесплатная утилита расширенная экселем и такой-то матерью).
Начинали в экселе на один мазагин, выросли в сеть на несколько штатов, а учет остался по старому.
Когда всё сделали - как всегда стало казаться что "ой, а оно вон как оказывается просто, и за что с нас такие деньги дерут?" (ну да, по американским тарифам, факт).
Я понимаю что ты фанатик питона и джанги, но даже на них нужно писать хоть сколечко отказоустойчивое и оптимизированное приложение.
У меня месяц назад (да, именно тогда) на тестовом хостинге произошло одновременно два события - один эникейщик решил устроить взлом/дос/проверку_безопасности одного скрипта. В это время заглючило железо на хостмашине где живет вдс. Специально выяснял что это таки железо, а не падение под нагрузкой. Совпадения бывают, да.
Не знаю кто из вас тут прав, просто в тему.
Ну и работу вы проделали. Буду осмысливать. Спасибо!
Да сколько там той работы). Всегда знал что такие псевдозащиты именно что псевдо, но на практике колупать не пробовал.
Ну и да, это меня окончательно убедило что свой фреймворк буду под MIT выкатывать. А то со своими страхами форка выгляжу как эти ребята защищая свою "курсовую".
В принципе кода там немного. Ручками возьму и пересмотрю в редакторе.
минифицированный пхп-файл? (явно как альтернатива обфускатору).
Или такой же минифицированный жс?
Бросьте это гиблое дело.
Тут или сканер какой натравить или забить.
Разработчики принципиально не хотят чтобы у них искали ошибки, и очень ценят свой труд).
---------- Добавлено 31.03.2017 в 12:59 ----------
АПД: Не хочу повторять слова одного кульхацкера, но мне кажется что XSRF там должен быть наверняка. Но... зачем оно вам в принципе? Я имею ввиду зачем вам это проверять?
Бегло посмотрел демку, как я понял это велосипед на тему jstree и ace. Ну загрузчик файлов еще вестимо.
Судя по беглому просмотру кода мне показалось что редактор они решили сами переизобрести.
Без велосипедизма в редакторе - такие вещи пишет каждый второй программист на том или ином этапе своего развития. Дырявое оно или нет - не важно.
Не будет вас никто целенаправленно ломать. А от автоматического взлома оно скорее всего защитит.
---------- Добавлено 31.03.2017 в 13:34 ----------
АПД: вру, оно таки обфусцировано немного. Но в целом вскрывается консервным ножом. Обфусцированно руками, не нормальным софтом, т.е. это стиль у людей такой. Т.е. автор мыслит так, чтобы сложно было прочитать).
Я сначала подумал что это чтобы запутать, но вот такие обороты явно не обфускатором деланы:
final class a
{
private $a;
private $h;
public function __construct()
{
$this->a['a'] = $_GET;
$this->a['b'] = $_POST;
$this->a['c'] = $_SERVER;
$this->a['d'] = $_COOKIE;
$this->a['e'] = $_FILES;
}
.....
public function e($a, $b = false)
{
if (isset($this->h['d'][$a]))
return $this->h['d'][$a];
else if (isset($this->a['d'][$a]))
return $this->h['d'][$a] = $this->g($this->a['d'][$a], $b);
}
private function g($a, $b)
{
if ($b && ($c = 'g_' . $b) && method_exists($this, $c))
return $this->$c($a);
else
return $a;
}
private function g_sha1($a)
{
preg_match('~^[a-z0-9]{40}$~i', $a, $b);
if (isset($b[0]))
return $b[0];
}
}
Ну т.е. именование такое может быть искусственным, циклический вызов этого может быть исскуственным, но передача третьего параметра в прег_матч, который неинициированный, вот эти гет-посты в конструкторе, финал, приват/паблик без протекта... всё это признаки именно стиля.
Реальных уязвимостей не нашел, но вот такие вот обороты вызывают вопросы:
$a = $this->t->e('textolite_session', 'sha1');
...
$b = unserialize(urldecode($this->s->h('auth_error_list')));
...
$g = $this->t->d('password', 'sha1');
unserialize на самом деле на строчку из конфига ведет, но стиль блин!
ну и сочетание слов пароль и sha1 тоже вопросы вызывает.
Опять таки повторюсь - Неуловимый Джо остается неуловимым. Я из чисто академического интереса.
Мне вот что интересно - почему так никто и не сказал ТСу, что "поисковые роботы" находят не php-скрипты, а html-страницы?
Да он настаивает на своей версии что его атакуют роботы с целью увидеть исходники когда от глюка апач "забудет" что пхп нужно выполнять и будет отдавать как статику.
В истории такие случаи были. Давно. Редко.
Но человека не переубедить, так что смысл капитанить?
гугление выдает не сервис, а список сервисов (компаний) как минимум 3-4 шт.
Это надо в комплексе читать, с тем что я не попугай.)
Бесплатный сервис сертификатов один. Летсэнкрипт.
И чтобы два раз не вставать - сразу гуглите чем они отличаются от остальных, кем созданы, с какой целью и т.п.
Простите, у Вас имбецилы работают, раз при попытках взлома к логам догадываются обратиться через н-ный промежуток времени? Вопрос риторический.
Имбецилы это те кто дает эмоциональную оценку чужим бизнес-процессам по экспресс-оценке трех строк поста).
Ваша оценка моих умственных способностей сродни оценке нашего решения этим кульхацкером).
Оргвопросы решались оперативно. Даже техдира хостера (спасибо гиперхосту) разбудили для некоторых подробностей.
А читать логи неудавшегося взлома когда автор атаки известен и опознан, и уровень квалификации деятеля - крайне низкий? А смысл? Я бы вообще их не читал, просто вчера добрался до этих логов по другой причине. Выполнял совершенно другие, не связанные с этим инцидентом манипуляции, обратил внимание на одну "странность". Задумался. Предположил что это период того инцидента. Проверил. Да, именно тогда. Раз наткнулся, то прошелся чуть подробнее.
У чувака был по сути полный карт-бланш. Ему не просто выдавали 500 или 403 на его "шалости" а подробно выдавали описание. XsrfException или ActionNotFoundException, да и даже если и ForbiddenException то со стеком дебаг_бектрейса. Т.е. включен подробный лог, включен ДЕВмод с выдачей всех нотисов в браузер и т.п. И чувак ничего не нашел. Совсем ничего.
Что мне было искать в логах?
Сайтов то много есть. На клиентские скрипты сайты регулярно кто-то ломится. Ну что я там найду?)
Ну нашел да. Нашел что ломились по аяксу, ломились с куками, авторизованные, правильно подставили не только права админа (да, у атакующего были админские логино-пароли), но и всякие XSRF-маркеры и т.п. Ничего сложного. Я не специалист по безопасности, я вон не знаю всяких софтов (ну кали линукс конечно знакомое название, но ставить не ставил), но руками я все такое делаю и делал.
Меня смутило что чувак совсем сырой, явно каким-то софтом рыл, а запрос был к месту.
(Механический сканинг виден по времени между запросами и их массовостью, а также то что пробовали через форму заливки файлов скачать /etc/password при этом даже не вытаясь нащупать что-то другое через нее же, хотя ежу понятно что такое только при очень большом везении прокатит, да и "тестировали"/атаковали софт, а не сервер).
Вы в NASA работаете?
Или единственные, кто мог сделать за озвученный бюджет?
Или там просто ваша поделка, которую только вы в состоянии поддерживать?
Это американская компания.
Они обращались к энному количеству разработчиков.
Все говорили им что это принципиально невозможно сделать, и вопрос не в бюджете а в том что задача не решаемая.
Мы согласились. Бюджет назвал клиент.
Мы естественно согласились за верхнюю планку).
ТЗ было ужасным (вернее его не было).
АПИ систем с которыми интегрировались ужасный,
все данные везде забивались задней левой ногой.
Основная сложность была в том чтобы придумать что же именно с этим делать,
потом сложность была выйти за рамки видения заказчика и решать именно потребность заказчика а не его видение.
Ну и на закуску была еще чудесная задача по нормализации того ужаса что они позабивали в первичку. Опечатки, дубли и т.п., учет в совершенно другой системе координат, в общем полный набор нормализации. Причем взять и все остановить, поприделывать везде нормальный SKU (артикул), создать таблицу отождествления 1 к 1 было нереально ибо данные поступают live, плюс основной фишкой было сопоставление исторических данных и текущих. Ну и штат персонала продолжает добавлять номенклатуру исходя из их кривого формата.
Сделали несколько словарей перевода, сделали преобразование в несколько этапов, чтобы даже новая ошибочно забитая позиция попадала более-менее близко к нужному месту, и потом уточнялась...
В общем обычная рутина автоматизации управленческого учета где в основе типовая бесплатная утилита расширенная экселем и такой-то матерью).
Начинали в экселе на один мазагин, выросли в сеть на несколько штатов, а учет остался по старому.
Когда всё сделали - как всегда стало казаться что "ой, а оно вон как оказывается просто, и за что с нас такие деньги дерут?" (ну да, по американским тарифам, факт).
богоносец, официально они боялись за свои данные. Типа чтобы не взломали.
Фантастическая версия - взломать и скомуниздить.
Но думаю все прозаичнее - повод для торга искали.
Но там без вариантов было - мы единственные кто мог сделать, они единственные кто мог купить (с оговорками, но через их голову сложно).
---------- Добавлено 30.03.2017 в 22:46 ----------
апд: в контексте вопроса я имел ввиду быстрый полуавтоматический взлом/тест, без особых навыков и усилий.
ну понятное дело есть сервисы выдающий сертификат на год бесплатно, а дальше - видимо платить же придется?
Я похож на попугая?)
Не на год.
Платить не придется.
Не сервисЫ а сервиС.
за такие бабки выбор как раз есть - нафиг он нужен.
За какие бабки вам не нужен бесплатный сертификат?
Обычно берется Kali Linux и прогоняется всем что есть, включая sqlmap, w3af и прочее.
Ну "всем чем есть" это понятно)
Вопрос был скорее что стандартное и "для блондинок".
Мне больше интересно, почему коммерческий отдел выдвигает претензии отделу разработки.
Там не претензия была, там была именно просьба "быстро и жестко".
Ответ конечно смягчили, но лишь из беспокойства об инсайдере.