BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/review/archive/2000/30-07-0.html

30 июля 2000, #100

очередной юбилей (30.07.2000 03:54:56)

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

Много это или мало? С одной стороны, вроде не так уж и много, сто выпусков за два с половиной года. С другой - регулярные проекты, существовавшие два года назад, и не помершие до сих пор, можно пересчитаться по пальцам, а уж сколько их успело родиться и умереть за это время, я и не упомню. Долго хвалить себя не буду, загляните-ка лучше в архив, местами очень увлекательно и порой даже актуально, особенно на фоне публикации в журнале "Ксакеп" под видом свежака годичной давности информации о взломах RLE и Rambler'а :)

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


рассылка по распределенным системам (30.07.2000 03:24:04)

...была создана мной пару дней назад на subscribe.ru. Помимо традиционных новостей из жизни проектов типа distributed.net, планируется и обсуждение этого вопроса с программистской точки зрения - алгоритмов, библиотек и т.п. Если кто-то из читателей пожелает поделиться информацией, фрагментами оригинальных исходников и т.п., я буду только рад.


тяжелая жизнь спецслужб в эпоху Интернета (30.07.2000 03:17:10)

Не слишком ясная история случилась давеча с сайтом cryptome.org, специализирующемся на публикации материалов, которые правительства разных стран не слишком стремились выносить на всеобщее обозрение. Помнится, в апреле там случилась публикация имен действующих агентов MI5 и MI6 в Ливии, а несколько дней назад - публикация списка сотрудников японского Агентства Общественной Безопасности.

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

Вскоре после этого сайт cryptome.org оказался недоступен, в каковом состоянии пребывает до сих пор. Провайдер уверяет хозяина, что пара его сайтов просто свалилась от перегрузки из-за большого количества запросов (возможно, имела место DoS-атака) и были переведена на другие серверы с другими адресами, а записи в DNS просто еще не обновились. Объяснение несколько странное, на данных ip вроде как других виртуальных серверов не жило, и кто мешал вместе с переездом на новые машины просто прописать там старые адреса, мне непонятно.

Новый ip-адрес сайта - http://216.167.120.50/, ну а тут - перевод части материалов Юрием Кожаровым.


пара замечательных багов (30.07.2000 02:49:34)

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

Первая дырка любопытна тем, что лежала в общем-то на поверхности как минимум пять лет. Оказалось, что при запуске оболочки, что указана в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell, ее исполняемый файл (как правило, explorer.exe) ищется начиная с корневого каталога диска, на который была установлена система. Так что если один пользователь имеет доступ на запись в корневой каталог, то он может подсунуть неплохую свинью другому пользователю. Возможная причина такого веселого поведения заключается в том, что функция CreateProcess, если не указан полный путь до исполняемого файла, ищет его вначале в каталоге, из которого был запущен родительский процесс, потом в текущем каталоге, ну а потом уже в системных каталогах и каталогах из PATH. Кто там кого запускает во время загрузки, я сейчас не воспроизведу, но этот кто-то, запускающий Explorer.exe, лежит явно не в корневом каталоге, но и не в одном каталоге с Explorer.exe, и перед запуском оболочки зачем-то переходит в корневой каталог. Патч для Win2000 уже доступен, счастливым владельцам NT4 пока остается ждать. В принципе, латается легко - достаточно запретить запись в корневой каталог или прописать полный путь в реестре (это может вызвать проблемы с какими-то старыми приложениями, но безопасность дороже).

Ну а вторая дырка - опять из серии "мы рождены, чтоб сказку сделать былью" - из-за переполнения буфера аутлук может выполнить некоторый код, переданный в заголовке электронного письма, причем в обычно менее дырявом OutlookExpress'е для этого достаточно открыть папку с этим письмом, а в простом Outlook'е все-таки нужно открыть само письмо. Мрак.


еще раз о форумах Мэтта Райта (25.07.2000 16:51:34)

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

На сей раз у меня появился повод обсудить еще один источник дырок в скрипте форума (wwwboard) - а именно, hidden-поле followup, предназначенное для формирования структуры дерева - в него через запятую заносятся номера всех сообщений в цепочке, и при добавлении очередного ответа ссылки на него добавляются во все сообщения из этого списка. Одна старая дырка, связанная с этим, заключалась во вбивании в это поле цепочки из повторяющихся номеров, что приводило в быстрому забиванию доски мусором (подробно я это описывал в "Атаке на Internet") - хороший пример того, как не стоит доверять спрятанным полям - при желании их значения меняются элементарно.

В воскресенье я имел удовольствие на собственном опыте познакомиться с еще одной дыркой, связанной c followup (к моему глубокому сожалению, форум hackzone представляет собой вусмерть перепиленный напильником wwwboard, несмотря на все мои благие намерения переписать все с нуля). Дело в следующем. При добавлении очередного сообщения главный файл доски просматривается построчно в поисках предыдущего сообщения из нитки, после чего туда дописывается ссылка на новое сообщение.

Регулярное выражение, используемое при проверке, выглядит как /<ul><!--insert: $last_message-->/, где $last_message - это просто последнее сообщение из списка followup. Атака заключалась в том, что вместо номера последнего сообщения в поле followup вставлялась строчка "|.|", что из-за традиционной для Perl'а интерполяции переменных превращало строчку проверки в /<ul><!--insert: |.|-->/

Говоря по-русски, это означает, что скрипт искал строчку, подходящую под шаблон "<ul><!--insert:", _или_ "-->", _или_ ".". А точка, между прочим, соответствует любому символу, следовательно, ссылка на новое сообщение вставляется вместо каждой строчки исходного файла, плюс туда же дописываются еще четыре строчки с комментариями - мало того, что убивается все содержимое доски, так еще и файл разбухает в несколько раз.

Дырка любопытная, к моему стыду, мне ранее неизвестная. Лечится довольно просто - достаточно либо отфильтровывать из списка followup все символы, кроме цифр и запятой, либо заключить регулярное выражение в скобки \Q ... \E, приводящие к тому, что при интерполяции перед всеми спецсимволами появится \. А можно и то, и другое - дело вкуса.

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


У вас есть новость или ссылка, заслуживающие внимания наших читателей ? Пишите.

«     »




  Copyright © 2001-2020 Dmitry Leonov Design: Vadim Derkach