All streams
Search
Write a publication
Pull to refresh
7
0
underwater @underwater

User

Send message
Публиковался на милворме (http://milw0rm.com/author/1317), администратор проверял абсолютно все мои заметки и эксплоиты, отвечал по каждому лично, правда некоторые пропустил, но это наверное от большого числа писем, все равно неприятно :)
В нашем законе сказано не четко, предусматривается только пункт, звучащий примерно так — дизассемблируй для достижения работоспособности про граммы, если автор этого не делает, и друзьям не давай, только опять же в этом случае. Очень размыто
Три часа ночи, пока писал мог мысль потерять, если кто чего не понял могу разъяснить xD
Те, кто уже двадцать раз прочитал о том, как не надо использовать mysql_query, include, eval и system, порой могут отмочить что нибудь еще :)

Часто вижу, что при проверке в базу данных переменные вроде User_agent или Client-IP (X-forwarder-for) кладутся вообще без проверок, безумное использование import_request_variables или extract и куча других. Вспоминаем недавний баг в WordPress, я думал авторы уже научены предыдущими уязвимостями.

В версии 2.5.0 они решили сделать cookies юзера более защищенными

«wordpress_».COOKIEHASH = USERNAME. «|». EXPIRY_TIME. «|». HMAC

COOKIEHASH md5 хеш от имени сайта
USERNAME Имя пользователя
EXPIRY_TIME Срок жизни cookies до того как они станут невалидными

HMAC представляет из себя хеш из USERNAME и EXPIRY_TIME, основанный на ключе, полученный путем преобразования USERNAME, EXPIRY_TIME и SALT, проще говоря формула такая

HMAC_KEY = HMAC md5(USERNAME.EXPIRY_TIME, SALT), HMAC = HMAC md5(USERNAME.EXPIRY_TIME, HMAC_KEY)
$hmackey = hash_hmac('md5', $user. $time, $salt);
$hmacpass = hash_hmac('md5', $user. $time, $hmackey);


Вроде бы все хорошо, но нет, разработчикам надо было и тут ошибиться :)

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

Объясняю популярно — имеем пользователя admin1, после входа в блог получаем куки

[admin1]|{1897534539}|hash

Теперь просто переделываем cookies так, чтобы левая часть перед hash была идентична для юзера admin

[admin|1](единичка переходит сюда){897534539}|hash

В новом билде хватились и исправили, но такое не забывается :)
Согласен, но каждый день на различных секьюрити — лентах появляются все новые и новые уведомления о подобных уязвимостях, а ведь сколько уже было написано…
Странно, вырезалась ссылка google codesearch
Куча, поверь мне, куча уязвимостей даже в таких cms(f), как Drupal, Php-Nuke и прочих очень известных именно в файлах, которые по задумке автора должны только подключаться.

Кто не знает о том, что нельзя оставлять такие файлы доступными с веба — либо глупец, либо человек, поставивший cms и удаливший .htaccess

Мы говорим про программистов вроде, а не о тех, кто код с книжек копирует.
Согласен с вами, статья сводится к следующему — «не используй php, на другом сервере его может не быть».

Пятый пункт, в котором говорится о кэширование в файл — тоже спорный момент, кэширование в файл очень плохо сказывается на сервер при большой нагрузке.
Готов поспорить насчет первого правила, во многих популярных cms/cmf все инклуды имеют расширение .module или .inc, что сделано для безопасности. Можно конечно define`ом проверять, но суть в том, что первое правило не совсем правильное.
Стопроцентной вероятности конечно нет. А указывать причиной документ, определяющий стандарты сервера и браузера — неоправданный бред. Можно поменять строку с юзер агентом, но очередность тех же заголовков RFC не определяет.
В одном моем проекте ребром стал вопрос о необходимости узнать браузер юзера с точностью до ста процентов, долго собирал заголовки браузеров и нашел некоторую закономерность. Думаю, сейчас это уже в прошлом, но два года назад именно порядок заголовков помог задетектить браузер.
Вы правы, это скорее для очень специфичных случаев, раньше это было очень необходимо, до появления HTML 2.0 скажем, сейчас редко используется сервер — сайд определение браузера для фиксов верстки. В тоже время отлично подойдет для скрипта статистики. Функция get_browser в php появилась в 2000ом году, это о чем то говорит :)

Хоть люди из Mozilla и утверждают, что этот документ только история, все равно полезно прочитать — The Ultimate JavaScript Client Sniffer и Browser Detection and Cross Browser Support
Для меня тоже, мне двухсот — трехсот рублей на месяц хватает точно. Если бы я взял полностью разлоченный мне все равно пришлось бы класть на него эти двести рублей. Тем более софт я на него всегда поставлю, да и привязка к одному оператору для меня не проблема, ведь с аймобилкой заключают вроде все компании «большой тройки» — МТС, Мегафон, Билайн.
По неофициальным данным, будет такой тариф. Покупаешь за 199 уе айфон и каждый месяц с твоей кредитки списывают 25 уе в течение двух лет. Это будет оплачивать еще и мобильную связь, те, к примеру, за эти 25 баксов вы получаете 100 смс и 40 минут разговора. Считаем 200 + 25*24 = 800 уе за 2 года, и это при том, что связь уже оплачена. Тем, кому не хватит такого тарифа будет продажа полностью анлоченного телефона за 850 и 950. Повторюсь, данные неофициальны. Меня устроит покупка телефона за 199 баксов и выплата 25 в течение двух лет, тариф создан для меня :)
Выглядит как miranda, там и не такое сделать можно.
ААА! У меня все это было, хотя я сам 90ого года рождения. Были еще журналы для наклеек, помню как покупал наклейки с футболистами и менялся повторными с друзьями, фишки и битки еще помню, духарики… эх
Помогало, но только от червей :) В действительности приносило больше проблем
Наши почтовики обычно это так не оставляют и активно взаимодействуют с органами. Не так часто, как хотелось бы, но поверьте мне, ловят.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity