Разработка сайта в действии: скрины и эксплоиты
Здесь будут публиковаться интересные эксклюзивные материалы, связанные с историей и развитием сайта.
На текущий момент уже есть три раритета:
[list]
[*] Снимок экрана, сделанный spinore'ом: браузер с полученнми администраторскими полномочиями[link1] (вскоре будет выложен для общего доступа).
[*] Снимок экрана[link2], сделанный spinore'ом: браузер с чередующейся авторизацией (spinore с правами Serghan и Serghan с правами spinore, MD5 хеш файла: 80a054b5b0d59ed3b67c13b2d849191f, по мотивам этой темы[link3]).
[*] Само это сообщение :-)
[/list]
И, пожалуй, этот список ещё пополнится ;-)
Ссылки
[link1] https://www.pgpru.com/Новости/Проект/2006/11-03-ЗащитаУчетныхЗаписейПользователейСайта
[link2] http://dump.ru/files/8/8552129268/
[link3] https://www.pgpru.com/Новости/Проект/2007/05-02-РазъяснениеНочНогоИнцидента
[link4] http://en.wikipedia.org/wiki/False_flag
[link5] http://www.obsd.ru
[link6] http://www.runetbsd.ru
[link7] https://www.pgpru.com/comment15817
[link8] https://www.pgpru.com/proekt/poljzovateli?profile=
[link9] https://www.pgpru.com/glavnaja/registracija
[link10] https://www.pgpru.com/comment16045
[link11] https://www.pgpru.com/Comment16100
[link12] http://omploader.org/vMzJkZg/oujaspgp.png
[link13] http://omploader.org/vNGEzMw/pgpru_0day1.png
[link14] http://omploader.org/vNGEzNA/pgpru_0day2.png
[link15] http://omploader.org/vNGEzZA/pgpru_0day3.png
[link16] http://omploader.org/vNGEzZQ/pgpru_0day4.png
[link17] https://www.pgpru.com/forum/sodejjstvie/sozdanievforumenovojjtemyssuschestvujuschimnazvaniem
SATtva, вы бы не могли его выложить? У меня копия потерялась – сейчас есть только этот файл, зашифрованный вашим ключом. Назывался он при отправке по почте new.png.gpg, это 2006-й год.
А вот оно и долгожданное дополнение! :-))) Вносим его в историю.
На этом сообщении показан визуальный улучшенный обход диагностики, который проверять прийдётся уже только ключом истиного unknown'а: 02B8 F1C5 A4FA 9B71, а иначе подмену не распознать.
Уважаемые коллеги!
Все рабочие на текущий момент эксплоиты на движок, удалённую копрометацию сайта, скрины с перехватом моей сессии и подделкой моей подписи (или ключа) публикуем в этом топике, чтобы я мог дорабатывать их и поддерживать в рабочем состоянии.
ЧТО?! Как это понимать?
Господа, не поддавайтесь на гнусные провокации акул империализма, проверяйте отпечаток ключа и профиль пользователя (участие в группе админов). А Вас, spinore, отшлёпаю нафиг! :-)
... Вас, unknown, кстати тоже. :-) А вообще, похоже, пора никнэймы проверять на похожесть...
SATtva, реализуйте то что я сказал:
перед отправкой сообщения и перед регистрацией никак проверяете новый ник: пусть он даже содержит кириллические символы, но они не сводятся к подмене букв как выше сделано относительно какого-либо из уже существующих ников, и всего делов-та...
P. S.: вы же понимаете что публиковать хэши ников не выход? Можно конечно вообще отменить ники и использовать только хэши :-) (шутка)
Блин, весь сайт
засрализагадили. (Где-то spinore недавно предлагал провинившихся в chroot сажать... пара кандидатов у меня уже имеется.) Что с этими комментариями теперь делать будем?ничего не будем делать. Или вырежем и поместим в отдельную ветку – например, эту.
Был рад стараться!
spinore, спасибо Вам за обращение внимания на эту потенциальную уязвимость, но всё-таки держите себя в руках. Дайте время на исправление.
Проверил, точно не похожи, не виноватая я:
А, ну ладно, тогда Ваша экзекуция отменяется. Думал, Вы тоже принимали участие во всей этой вакханалии. Хотя, надо признать, spinore молодец, конечно. Атаковал систему с неожиданного для меня направления.
Я просто хотел обратить ваше внимание на существующую проблему и показать её серьёзность.
дело же не в конкретных комментариях, как вы понимаете. А что касается проверки на схожесть – так на некоторых форумах типа linux.org.ru где слишком много юниксоидов с длинными руками уже давно есть встроенный проверщик на похожесть ников при регистрации. Например, если spinore уже зареган, то spinore123, ssspinore, s-p-i-n-o-r-e, s.p.i.n.o.r.e, sppinore уже не проканают при регистрации. Там какая=то хитрая распознавалка. поидее такой алгоритм на критерий похожести должен быть стандартом на форумах. Надеюсь сейчас всё всё понимают. Левые коменты можно потереть, остаить только несколько чисто для демонстрациии.. для истории так сказать.
А вообще, это всё из-за mellon который под моим ником опубликовал сообщение под гостём. Вы тогда, SATtva, сразу сказали про хэши ников и на этом всё кончилось. Если я не ошибаюсь, вы на тот менмент не понимали во что это может быть гипертрофировано в случае атаки. Собсно, я показал.
Да я б сам исправил если б умел программировать :-) Как вы пришли я больше не гадил :-)
P. S.: ну за неделю поди исправим?
P. P. S.: я там по разным топикам много по существу ошибок выловил, нареканий, недочётов... Вы внимательно читайте, надо всё это вычищать и исправлять, баги в смысле. Что от меня зависит я делаю.
Вы правы, не понимал. А виноват во всём mellon, это точно! :-)
Заглавные буквы при сверке ников тоже надо отключать.
То есть если spinore уже есть то Spinore или spInore должны резаться скриптом регистрации и скриптом проверяющим ник гостя.
Ну наконец-то разобрались и нашли виноватого :-) Ну что, берём mellon'а и где у нас тут гильотина?
Птфу, chroot, а не гильотина... Оговорился.
:-)
Надо было рекламу заранее дать:
Не пропустите! Хит сезона: "Атака кло(у) нов" на сайте pgpru.com!
Режиссёр и исполнитель главной роли: spinore. По мотивам mellon.
А то половина народу так и не успеет ничего заметить. И останутся только скупые строчки в местных новостях.
Вы, unknown, неужто полагаете что я всё это знал заранее? Каждую минуту я не знал какой будет следующий шаг, сообщение и идея. Это всё рождалось налету. и я совсем не предполагал что выльется в этом
Может быть, когда-нибудь SATtva'а добавит страничку в фак или ещё куда о существовании в ИБ такого понятия как социнженерия и спекуляции на пересечении разных алфавитов. Да, ранее я прекрасно знал что какую-нибдь "o" можно написать в обоих раскладках, но я даже не предполагал что из этого можно сотворить комедию вселенского масштаба :-)
P. S.: вещи из категории очевидных, но только "задним числом", когда уже знаешь... :-)
Основное исправим, прочее оставим на закуску.
Лучше сваливайте свои наблюдения на страницу разработки движка. Поверьте, мне так проще будет самому отслеживать прогресс и подлежащие исправлению проблемы, чем искать их по всем топикам (коих уже не меньше дюжины). Я ведь не только этим сайтом занимаюсь, а ещё и на покушать себе зарабатываю, и иногда читаю обсуждения "по диагонали", могу что-то пропустить.
Не скромничайте! Блестящая импровизация иногда ценится даже больше, чем хорошо продуманный план.
[/me] подумывает сменить свой ник на жертва киберклонирования.
А Вам в придачу к обещанному пиву подарить SATtve ящик корвалола, чтобы какой-нибудь очередной бал-маскарад не попортил ему нервы. А то смотрите, он ведь и разозлиться может!
Я сделал некоторую проверку ников на похожесть при регистрации и добавлении комментария / правки страницы гостем. Вряд ли она даст стопроцентный результат, но от большинства проблем избавит.
Мы ищем в базе данных два варианта имени с заменёнными наборами символов (как из кириллицы в латиницу, так и обратно), а также оригинальный вариант без транслитерации:
Подскажите, если здесь чего-то не достаёт. У меня после пары бессонных ночей голова уже слабо соображает.
Хорошо
"герой киберклонирования" звучит оптимистичнее :-)
Ещё есть волокардин, димидрол, валерианка, реланиум,...
Не прежеивайте, у него хорошая выдержка. Кстати, unknown, а вас никогда не ломали/копрометировали?
Насколько я понимаю, только те вещи, которые человек сделал в жизни бесплатно ради идеи в конечном счёте покажутся ему не бессмысленными в конце жизни. А деньги, это то что сгубило всё, всю жизнь протравило :-(
I l <-> 1
SATтva (тест)
Уже позже дошло, что надо было инсценировать приход подлинного SATtva'ы, его возмущёные реплики, апелляции к тому у кого хэш длинее и кто больше может подписать, потом появление ещё одного подлинного SATtva'ы с другой моделью реакции на происходящее, где каждый бы аппелировал к своим параметрам аккаунта, выдавая за верные, в итоге подлинность SATtva'ы стала бы определяться голосованием среди посетителей, а каждый бы из клонов SATtva'ы кричал "голосуйте за менчя! Я завтра восстановлю аккаунт и у меня будет 10.000 постов в рейтинге! И вам всем по 100 набавлю! А другой бы кричал "да это всё ернуда! Голосуйте за меня, я настоящий SATtva! Я вам дам возможность править все документы! У нас будет демократичный форум где все будут модераторами а пользователи будут отчаянно метаться между разными инстэнсами Саттв пытаясь выбрать лучшее ... В итоге всё сводится к полнейшему бардаку, в форуме общаются уже 6 разных инстэнсов SATtva'ы (именно столько их с учётом коллизий), каждый говорит полную чушь, все пользователи в растерянности от происходящего, под самый конец приходит тру истинный SATtva и падает в обморок. Занавес. -:)
Что-то в этом духе :-)
Я каждый раз убеждаюсь и самостоятельно, и с чужой помощью, как легко это можно сделать в любой момент, что давно надоело относиться всерьёз ко всему этому "security theater".
К счастью мне ничего особо ценного не поручают.
Это уже не комедия, это киберапокалипсис какой-то :)
Кстати, на протяжении всей истории люди чем-то похожим занимались, только эта стратегия была придумана не для забавных игр:
Что-нибудь слышали про false-flag?
False flag[link4]
См. также black operations, black bag operations, sabotage, PSYOP...
Буквы "t=т", "I=l" добавил.
Может помещать вновь зарегистрировавшихся пользователей в карантин с минимальным набором прав?
Хотя что потом с ними делать? Вручную подозрительных отслеживать? Так они хитрые, затаиться могут :-)
Зобанить мну! Зобанить! :D
Говоря по существу, у меня никакого умысла портить что-либо здесь не было (еслиб было, то сайт мигом в зловонную помойку превратился бы :D )
Проект сугубо тематический и ориентирован на дружеское общение по делу :)
Строго говоря, заинтерисован в этом проекте только благодря просветительской деятельности SATtva и unknown: благодаря SATtva заинтерисвался своей безопасностью, а unknown помог стать профессиональным параноиком :D
Но SATtva сам предложил протестировать не проект, а движок, который очевидно предназначен не только для этого проекта, но и для совершенно других, подчас очень агрессивных сред :) А раз так, то и было решено проверить его на прочность :)
Но, действия spinore всётаки осуждаю: играться надо в специальной песочнице предназначенной для тестирования движка, а не по всему проекту :D
Боюсь тогда будут проблемы с мотивацией. В песочнице словно дитю малому играться неспортивно. Хулиганить так на самой грани :-) репутация проекта от этого не пострадает, он ведь некоммерческий, перед клиентами оправдываться не надо, а свои всё поймут им ещё на пользу пойдёт.
Тем более он ничего не поломал, ничего плохого не написал, так нафлудил малость.
Кроме того, это не произвело бы ТАКОГО впечатления. Ну была бы очередная дыра в движке и всё, потенциал которой до конца бы не осознали. А так всё очень наглядно в онлайне и можно о многом подумать.
Не осуждаю :-)
Ничего не понял. Запретить писать комменты в произвольных темах что ли? А редактировать документы итак могут толкьо члены группы OpenPGP, которая не столь многочисленна, и туда как я понимаю, попадают те, кто уже более-менее известен пользователям проекта.
Да, есть ещё более интересный вариант, который используется в "агрессивных средах" \© mellon\ – регистрация по личному запросу к администратору либо по его приглашению, причём людей с улицы не берут. Для данного проекта, думаю, это не имеет смысла. Как станет среда агрессивной – так и надо будет думать. Пока важно чтоб не было копрометации и возможности взлома сайта, а загадить можно любой форум при желании если постить разрешено.
В частности, возможность читать оригиналы подписанных сообщений – это большое добро, так как проверяя их, всегда можно сказать что к чему несмотря на взлом/копрометацию сайта.
Вот видите? Видите? Он уже нарывается! Я ж говорил...
А за спинороцид статья есть...
Поднял вверх все свои 4 лапы чтобы поддержать :-)
Я слышал вот о каких вещах, которые может быть имеют отношение к делу:
Я не про НЛП, не про НЛО и не про прочие страшилки для обывателей.
По ссылкам как это кое-где принято не ходили, я совсем не про это, ну да ладно, проехали.
Ну хотя бы подписи запретить временно использовать, хотя сам понимаю, что это бред.
Избавление от перхоти методом гильотины.
Закрытые клубы и сообщества быстро застаиваются и деградируют. Или какая-то масонская ложа получиться с надменной иерархией, вместо свободного общения пусть и с возможностью нарваться на слегка неадекватных субъектов. (без них тоже скучно).
Тогда если spinore ещё разбушуется, отправим лечить его от спиноротоксикоза.
unknown:
Я просто английский очень плохо знаю, особенно на общественные темы. Мне надо долго напрягаться чтоб перевести. Я читаю английские тексты не по специальности/компам толкьо если очень интересно/сильно_надо. То есть, проблема исключительно в языке.
unknown
За что такая немилость? Их и делали именно затем, чтоб могли их использовать всё, даже неавторизованные пользователи(!).
Или вы имеете в виду всё ту же атаку с подменами символов? Так SATtva уже вроде пофиксил сие (?)
unknown
В целом это правда, но не совсем: новые члены могут приходить, просто отбор должен быть хоть какой-то. Типа, есть один отстойник, который доступен всем, второй отстойник, куда попадают только проявившие себя хорошо в первом, и истиное место, куда приглашают только тех, кто хорошо себя проявил во втором отстойнике. Схема реально работает, новые члены появляются. Хотя надёжность клуба, возможно, не оправдывает геморрой связанный с вышеуказанным разделением на отстойнике.
unknown
Ну меня осталось забанить только здесь, на obsd.ru[link5] и на runetbsd.ru[link6] чтобы я перестал гнить на форумах :-)
В принципе, полезное дело будет. Когда меня на лоре зобанили я наконец-то вернулся к нормальной жизни :-))) А то просто жил там.
Раз уж в теме есть слово "эксплоиты", то добавлю от себя о своей же схеме. Эта защита даст результат только в том случае, если пытаться сымитировать никнэйм, написанный в одной раскладке. Если же в никнэйме (легитимном) изначально использовались похожие по начертанию подстановки, то его можно будет подделать, просто добавив ещё одну подстановку.
Например, если бы мой никнэйм был SATтva, достаточно было бы заменить вторую или последнюю "a" на кириллическую, чтобы проверка прошла.
Проблема предложенной[link7] схемы проверки в том, что она тестирует (на наличие в БД) только три варианта написания: 1) предложенный пользователем, 2) со всеми кириллическими подстановками, 3) со всеми латинскими подстановками. Т.е. без смешанных вариантов. Чтобы сделать полную защиту, требуется собрать массив всех комбинаций подстановок и проверять их все. Сие есть дурдом. Но если кто-нибудь предложит алгоритм (можно в псевдокоде), можно будет и сделать.
да, кстати по поводу бана, вспомнил:
Возникала у меня как-то в жизни ситуация когда нельзя было себя разрегистрировать.
Как говорится, это нужно не часто, но метко. В этом форуме есть такая возможность или только руками SATtva'ы?
SATtva:
Это будет сделано в будущем? (по уму надо, конечно, именно так делать)
P. S.: вспоминается: "проще всего, конечно, запретить кириллицу..." © SATtva
Только выносить ручками из каждой таблицы БД. Изначально в WackoWiki возможности удалить пользователя предусмотрено не было, а за недостатком прецедентов здесь я тоже данную возможность ещё не реализовал. Это, кстати, будет не так просто, как может показаться: простой delete from users where name = 'nickname' не пройдёт, поскольку имя останется владельцем каких-то документов, наблюдений и т.п.
Бана пока, кстати, тоже нет. :-)
Я тут намедни посмотрел реализации таких проверок в других веб-движках. К сожалению, ничего лучшего, чем у нас, не увидел. "По уму" действительно следует проверять все варианты. Труднее написать алгоритм для построения такого списка. Открыт для предложений.
SATtva:
ну и что. Во многих форумах при забанивании/удалении пользователя его комментарии/темы остаются. Коменты/темы трутся если нарушают правила/противоречат_личному_вкусу_админа, а бан соответствует просто запрету логиниться в таком случае. Удаление – тоже самое, толкьо запрет логиниться навечно.
SATtva:
Не понял в чём проблема.
берём имя пользователя, находим все буквы, которые можно использовать для незаметной подмены – вы уже писали где-то этот список букв.
Далее для каждой из подменяемых букв мы знаем как найти для неё подмены из таблицы соответствий.
Конструируем функцию, которая по по номеру позиции в слове подменяемой буквы конструирует все возможные подмены этой буквы. пусть это функция fun0. И пусть эта функция умеет обрабатывать массив входных имён.
Вначале конструируем первое подменное имя, соответствующее первой подмене первой подменяемой буквы и вносим его в массив. это вызов SATtva – получили SАTtva. Других вариантов подменить Aнет. иначе бы получили массив имён. Полученное имя (массив в общем случае) – добавляем в массив подмен MAS.
Потом находим вторую подменную букву – в случае SATtva это буква T. Вариант один – подмена на Т. Эту подмену (в общем случае массив подменых имён, где подменена только вторая буква) добавляем в MAS, потом суём на вход функции fun0, то есть находим всевозможные комбинации где обе первые буквы подменены в произвольных комбинациях. Полученные подмены добавляем в MAS.
Теперь находим третью подменную букву, в случае SATtva – это буква t. И подмена будет SATтva. Суём SATтva в MAS, подаём на вход fun0 и получаем массив MAS со всевозможными подменами первых 3 подменяемых букв. Продолжаем пока не исчерпаются все подменяемые буквы.
Полученный массив MAS поэлементно сравниваем с каждым из существующих уже имён пользователей на сайте.
P. S.: можно сделать чтоб fun0 не обрабатывала массив – тогда надо будет вместо передачи массива вызывать её несколько раз дял каждого из элементов массива.
Улучшения, думаю, возможны, это – вариант слёту.
Дополнение: функция fun0 каждый раз вызывается со своим аргументом, соотвествующим номеру подменяемой буквы, например.
Идея, думаю, ясна если подумать
Предлагаю открыть страничку, где можно будет тестировать логины на похожесть, чтобы их потом не пришлось вычищать из реальной базы или не повторять спектакль, как spinore.
Т.е. вводим логин, нас или посылают или пишет, что якобы успешно зарегились, а рядом для сравнения можно выбирать на вывод строчка в строчку уже существующий логин и смотреть похоже внешне получилось или нет.
unknown:
Нет, повторный спектакль на никнэймах будет бояном:
[][link8]
unknown:
Достаточно имхо разработчику проверить исходник программы и провести ряд тестов. Это не настолько сложный алгоритм.
В предыдущем сообщении был боян нарисован после слова боян. Это его wiki съела.
Не для разработчиков, а для всех желающих. Может у кого-то возникнут какие-то идеи и он их захочет по быстрому опробовать.
На других форумах имя мотет состоять или только из латинских букв и цифр, или только из букв кириллицы и цифр. Проверить буквы на кириллицу или латиницу проще чем считать все комбинации замен.
unknown:
ну SATtva итак публикует исходники...
Вы бы, unknown лучше едлом помогли: набросали исходник, написали страницу для теста если считаете нужным...
Федор:
А у нас будет... по-уму а не как на других форумах. По крайней мере что в наших силах.
Нее, unknown, лучше едлом не занимайтесь, а реально помогите. :-))
echo "едлом" |sed 's/ед/де' <-опечатался малость при быстром наборе :-)
Предлагается следующий вариант алгоритма проверки на подмену:
ник с помощью списка букв и их подмен трансформируется в regexp, которому удовлетворяют все подмены ника
например: SATtva --> S[AА][TТ][tт]v[aа]
после чего данным regexp-ом осуществляется поиск по базе пользователей. Если найдено, то ловим за руку и бьем канделябром :)
Данный алгоритм аналогичен тому, что предложил ув. spinore, однако, по-видимому, более эффективен за счет использования стандартных возможностей.
http://www.phpbbguru.net/community/topic10157.html
Блин, где ж вы раньше-то были? Ладно, вот что я за сегодня с нуля написал (экспоненциальная сложность (вначале вообще была суперэкспоненциальная :-), но, мне кажется, есть потенциал для дальнейшей оптимизации; в любом случае, это лучше, чем поиск регэкспом по БД):
Да, если кто-то захочет испытать возможности (не желая тестировать функцию напрямую в среде PHP), воспользуйтесь формой регистрации[link9]: достаточно ввести только никнэйм и подтвердить форму. Если в сообщении об ошибке вы получите уведомление, что данное имя занято, значит, функция сработала. Если же получите множество других ошибок, но в их числе сообщения о занятом имени не будет, значит, подлог проскочил. Удачи!
Ув. SATtva!
К сожалению, я не знаю языка PHP, однако представляю в общих чертах Ваш алгоритм.
Быстрее он или медленнее поиска regexp-ом по базе, не знаю. Неплохо бы сравнить, думаю, зависит от реализации regexp-engine.
Могу предложить другой порядок перебора — за каждым ником в базе закрепить соответствующий regexp (и закешировать их). При регистрации нового перебрать всю базу, сличая
regexp-ы пользователей с проверяемым ником. Если всё успешно, новый ник добавляется вместе с соотв. regexp-ом.
Vadim_Z, спасибо за идеи, буду разбираться ближе к концу недели. Поиск регэкспом я оттестирую. Тут, вероятно, будет компромисс по скорости: использование регэкспов в SQL даст лучшую производительность при небольшом числе пользователей (как сейчас) практически независимо от длины никнэйма; использование же алгоритма выгоднее при больших базах пользователей, но на длинных никнэймах может накладывать существенные штрафы (опять же, с текущим уровнем оптимизации).
2 SATtva
А вот и ещё один небольшой косяк с диагностикой:
После того как я удалил все ключи клонов с сайта, и поменял свой, вот что получил – вы видите в диагностике этого сообщения...
Может ли кто-нибудь предложить простейшую атаку с использованием этой уязвимости?
Или всё-таки это глюки хэша?
у меня даже есть предположение из-за чего это могло бы быть...
Получилось, что сайт из-за того что ключ был на двух аккаунтах а я быстро их отредактировал, последовательность оказалась такой что удаление прошло после загрузки... хотя всяко может быть.
Есть идеи перезагрузить ключ но не буду, чтоб показать что такое что наблюдается – возможно.
Я тут ещё одну забавную вещь сделал.
раз уж такие дела – решил зайти к себев профиль и попытаться импортировать свой публичный ключ оттуда.
Жму, открывается длиннющая страница... Сохраня её как файл и импортирую в gpg, вот что вижу:
ну, думаю – мож это у всех так и должно быть? Хорошо, лезу в профиль к unknown'у, импортирую его ключ:
Я надеюсь что до приезда SATtva'ы кто-нибудь предложит хороший надёжеый эксплоит под эту вещь, чтоб можно было повторить на бис?
Кстати, когда я импортировал файл с ключами в gpg, о чём говорилось в предыдущем посте, увидев неадекватной длины пост первая мысль была "может быть, это и есть приватные ключи пользователей? Или хотя бы тот самый "секрет" который от нас скрывает SATtva об этом форуме?" -)
На случае если эффект потом пропадёт, копирую шапку предыдущего комментария:
spinore (18/06/2007 03:05) профиль <#> правка удалить
отпечаток ключа: ...02B8F1C5A4FA9B71
неопределенная ЭЦП ключом 0xA4FA9B71, не зарегистрированным на сайте
да, и если заглянуть ко мне в профиль то можно увидеть чудо: отпечаток у ключа есть, а key id у него нет ;-)
Хотя, когда захожу самк себе в настройки он показывает всё корректно: и кейид, и фингер..
2 spinore: спамеры скажут вам спасибо
Как чувствовал, нельзя вас одних оставлять. Покалечитесь.
Я уже отвечал Вам на подобный вопрос. Вот что произошло в данном случае. Из того, что я вижу в БД, Ваш настоящий отпечаток почему-то превратился в отпечаток одного из клонов (конкретно, псевдо-unknown'а). Подозреваю, что в ходе своих
экскрементовэкспериментов Вы вначале заменили свой настоящий ключ на ключ клона (закрытые части обоих ключей Вам известны), а затем попытались удалить ключ клона из его профиля. Это привело к тому, что ключ был просто удалён со связки, а поле с отпечатком ключа в профиле клона (которое и связывает пользователя и ключ на связке сервера) было очищено, но Ваше поле с тем же отпечатком — нет. Короче, запороли Вы свой профиль, spinore, и даже не знаю, чем Вам помочь в данном случае. Может ампутировать что-нибудь? :-)Чтобы атаковать эту проблему, Вы в любом случае должны иметь доступ к закрытой части ключа. Это скорее функциональный баг, чем уязвимость. Я исправлю функцию, чтобы при удалении ключа из профиля, данный отпечаток очищался у всех пользователей, у которых он значится. Но в любом случае спасибо, что отловили.
Да, профиль я Вам подчистил, можете обратно ключ загружать.
Также запускаю обновлённую версию функции проверки похожих никнэймов по мотивам идеи[link10] Vadim'a_Z (выражаю ему огромную благодарность за конструктивное предложение). Сам алгоритм (сильно упрощённая версия предыдущего без всех этих диких циклов) только строит regexp, определяющий условия поиска, а выборка по выражению производится в SQL-запросе. С учётом количества зарегистрированных пользователей показывает великолепный результат по скорости исполнения.
2 SATtva
Реально можно рассмотреть как то, что у меня было 3 аккаунта, на каждом был один из моих ключей.
Потом я решил ключи с тех акаунтов удалить, а свой заменить на другой свой ключ. В общем-то все
действия были легитимны и совершались не ради эксперимента. Ну ладно, если отловили то хорошо.
А что касется Vadim_Z – я кинул ему ссылку на свой алгоритм, после чего он ответил что можно много проще,
вот я и попросил его запостить...
Что касается ящиков (спамеров)... может кто отредактирует сообщение? Хотя бы тот же unknown...
(не подумал я об этой стороне дела, извиняюсь...)
2 SATtva
А вообще сам факт что в случае ненахождения моего ключа сайт выдал[link11] списокключей всех участников – это нормально?
Скажем так, я на это не рассчитывал. Ошибка исправлена: если отпечаток и ID ключа не переданы, то система и не вернёт ничего вместо того, чтобы вываливать всё содержимое связки.
Эпохиальный баг. Комментарий от 01/01/1970 на pgpru. Скриншот[link12]. Время обернулось вспять, и снова началась "компьютерная эра": SATtva, спасайте!
TIME PARADOX! Аааа, мы все умрём!!!1адиндадин
Уже ничего такого на той странице не вижу, похоже на причуду кэша. Но всё равно спасибо за бдительность.
Оно держалось минуту или больше, сохранялось когда я перезагружал страницу. Потом – да, исчезло. Но дата-то не случайная, вы же понимаете...
Ну, я о кэше на стороне сайта. Видимо, часть данных инвалидировалась, и осталась только такая странная ссылка.
Такое было и раньше. Появляется сразу после удаления комментов, возможно при других видах модерирования темы, но кажется не всегда, а при какком-то стечении обстоятельств.
Update: Тыц[link13], Тыц[link14]. Btw, ошибка лежала на поверхности, странно что мы никогда не пытались протестить движок на этот счёт.
И ещё до кучи: тыц[link15] и тыц[link16]. unknown уже топики откатил обратно, thanks.
Тыц.[link17]
Тыц :)
Лог не подтверждает никаких проблем. Куда пользователь отправил сообщение, туда оно и запостилось.