Комментарии 73
Комментарий для людей, надумавших попросить меня на тему поломать чего-то, ибо реально задолбали:
> Вариант 1. Меня обманули в онлайн-казино, пожалуйста помогите вывезти деньги
> Вариант 2. Есть идея как срубить кучу бабла, нужна консультация или помощь как взломать
нужное подставить...
> Вариант 3. Проиграл овер много денег, продал машину чтобы расчитаться с долгами, поуши в кредите, жена ушла от меня, у меня двое детей, ..., помоги... вернуть семью.
> Вариант N. Привет друг прочитал как ты взламывал казино а сейчас так можно просто очень много проиграл и нужны деньги
Мой универсальный ответ:
Я уголовкой и раньше не занимался и сейчас не занимаюсь, совсем. Да и вообще, я законопослушный нонче (да и всегда был по большому счету).
Обращаться к кому-либо с такими просьбами, ну то такое. И откуда у людей вера интересно, что их снова не обманут (уже те "хакеры") или, что много хуже, всё вообще не закончится проблемами с законом.
Это вообще нонсенс просить незнакомых людей в интернете помочь взломать чего либо. По многим причинам… Ну например, начиная с того, что если кто-то такое умеет и главное его ни законодательство, ни моральная сторона, ни совесть не смущают, остаётся вопрос — для чего ему в этой схеме вы?
Ну и заканчивая каким местом «очень много проиграл и нужны деньги» должно способствовать принятию вас в "подельники", не говоря уже о том чтобы как-то положительно характеризовать вас... Тем более что робингудов среди тех кого вы ищите - нет, и вы для них, простите, лох, которого развезти за грех не считается.
Поэтому, просто забудь, «друг»… И про проигранные деньги (оно того не стоит)… Как и про поиск взломщика через инет (ничем хорошим это не закончится).
Ну а деньги мало того что дело наживное, так ещё и можно на это смотреть как на плату за науку (типа митап "как не пролюбить деньги в интырнетах для чайников")…
Тем более что многие там были — кто деньги оставил в казино, кто на акциях или на бирже, кто в пирамидах и т.п., а кто-то в лотерею может просаживать... Вопрос только в том пошла ли наука впрок.
Пока не очень заметно.
У меня есть собственный (ну почти) плагин, разворачивающий «полноценный» интерпретор тикля (tcl) с api к javascript текущего окна. Ну типа greasemonkey, только на тикле.
Вот это — самое интересное в статье. Можно про это подробнее? Например, в отдельной статье.
Я тоже такой хочу! :)
Базируется оно на вот этом плагине. Но как всегда все переделал (не как
<object>
для рисования гуя типа java-applet, а как <object>
для интеграции с консолью / sublime, т.е. «умеет» DOM.А события DOM получать умеет? Реально прибиндить свой proc в истинно тиклевом стиле, скажем, как сокет, или как в tk?
Пример на вскидку:
elm bind ready eval {
elm bind onscroll "document.body" _my_tcl_proc_on_scroll_doc.
}
Есть на этом поприще пара хотелок и болячек, но я уже сказал — сыровато еще местами (времени катастрофически не хватает).
Для старта можете сделать:
import js
js.globals.alert(1)
Презентация этого чуда на PyCon 2015: www.youtube.com/watch?v=PiBfOFqDIAI
Я один раз «взламывал» казино игруна, правда чисто математически, без рейсов и без sql-иньекций. Есть у них такая замечательная игра «Сейф», аналог математической игры «Быки и коровы» — нужно выскрыть сейф за 5 попыток. Потратив несколько недель и несколько компьютеров, я перебрал абсолютно все варианты игры и создал-таки оптимальную выигрышную стратегию! С помощью ещё некоторых ухищрений я довёл математическое ожидание до +7% с каждого сеанса игры. Если кому интересно, описание этого алгоритма выложено здесь: pobedi-igruna.ru/safe.php. Я играл несколько месяцев, даже что-то выводил, а потом просто надоело. После решения головоломки — интерес к ней пропадает, любители головоломок меня поймут. Было это несколько лет назад, но алгоритм остаётся актуальным до сих пор.
Автор предыдущего комментария говорит, что его суперпрограмма, которая брутфорсила решения 7 месяцев, отгадывает 3314 кодов из 5040 возможных, таким образом, каждую игру баланс будет изменяться в среднем на (-1 + 1.5 * 3314 / 5040) = -0.01369 денежных единиц. Т.е. заработать на этом невозможно принципиально. Возникает вопрос — а в чем тогда смысл?
Чтобы это работало, угадывать нужно как минимум 3361 код из 5040 — тогда выплаты начнут еле-еле покрывать затраты на ставки (+0.00029$ за ход).
Ну и классический вопрос авторам «несливаторов» — зачем продавать стратегию, если она работает? Если бы стратегия работала с хотя бы 0.1% прибыльностью, то начав со 100$ (самый выгодный вариант по соотношению профита на количество ходов), удвоить баланс можно за 1000 игр. Потом вывести и удвоить еще раз. Даже если считать, что вы будете «работать» полностью вручную, это два восьмичасовых рабочих дня, за которые вы получаете 100$ профита — или 1100$ в месяц, если позволить себе выходные.
Поэтому вывод один — если стратегия продается, она не работает. И не может работать, так как угадывается меньше, чем 66.67% кодов.
Давайте подумаем, на что вы вообще можете влиять в рамках игры?
1. На код, который вы вводите.
2. На размер ставки.
3. На валюту ставки.
4. На решение не завершать игру в течении 12 часов.
На что вы не можете влиять?
1. На множитель. Он выбирается сервером «случайно». Я сыграл 19 игр на 19 тестовых рублей, которые мне дали при регистрации, и каждый раз множитель был 1.5. Вероятность того, что сыграв 20-ю игру, мне бы попался другой множитель, кроме 1.5, равна (1/2)20 ≈ 0.000000954, или же один к 1'048'576.
2. На правильный код. Он выбирается сервером «случайно», но так как случайность с их стороны никак не подтверждается (нет публичного алгоритма генерации числа, и я, как игрок, не могу добавить свою случайность в процесс), то можно предположить, что сервер будет стараться давать такие коды, для которых цепочки решения длиннее 5 шагов.
Что из вышеперечисленного может влиять на вероятность выиграть? Ничего, кроме вводимого кода — в начале игры выдается хэш правильного ответа, и никакие последующие действия, кроме завершения игры, его не изменяют. Поэтому никаких «ухищрений» нет и не может быть — просто по определению.
Если, конечно, не считать «ухищрением» договор с администрацией игруна :)
Частенько услышишь мнение, что безопасники (пентестеры, аналитики и др.) стали на светлую сторону силу, только потому что не смогли получить профит на тёмной стороне.
«Но помни, если ты сделаешь первый шаг по тёмному пути, ты уже не сможешь с него свернуть...» (С) ;)
безопасники стали на светлую сторону силу, только потому что не смогли получить профит на тёмной сторонеТа я на темной стороне никогда и не был. Честно-честно (ну разве что ребенком глупым совсем чуть-чуть). И я больше разраб, чем «безопасник». Просто той безопасности ради, иногда «опасно» играюсь с чем ни попадя.
А белые шляпы — это когда их сами создатели ресурса просят проверить.
после совсем откровенного намека «работа должна быть оплачена», попытка сделать меня шантажистом (я уже друга адвоката думал подключать);
Так это и бы натуральный шантаж. Нифга это не ВайтХат подход. Авторитет это нефига не поднимает.
Частенько услышишь мнение, что безопасности (пентестеры, аналитики и др.) стали на светлую сторону силу, только потому что не смогли получить профит на тёмной стороне.
Я скажу скорее так: безопасники (пентестеры, аналитики и др.) стали на светлую сторону силу, потому что они впаривать безопасность гораздо легче, чем создавать и поддерживать продукт.
И да мне очень интересно подобные «конструктивные» мнения, содержащие столько полезной информации по теме хабрахабра в целом и статьи в частности. Может вы и вам подобные пойдут уже куда-нибудь… на сайт типа «юриспруденциабр» и иже с ним.
Вы не правы. Шантаж был бы, если бы автор говорил «Дайте денег, а то я сделаю вам гадость». Такого (как минимум, по его словам) не было. Он им не угрожал сделать гадость. Он сообщил о проблеме. То что он знает в чем она конкретно, не означает, что он обязан этим знанием делиться бесплатно. Не хотите платить — берите и сами проверяйте, наймите аудитора в конце концов.
И если что, определение шантажа:
«Шанта́ж (фр. chantage) — угроза компрометирующих или клеветнических разоблачений с целью вымогательства чужого имущества или разного рода уступок.
В настоящее время слово «шантаж» нередко используется в широком смысле — как угроза любых негативных последствий в случае невыполнения требований.»
Токен совершенно честно помечался как использованный, и простой рэйс совсем не работал (т. е. transaction с table lock или уровень изоляции serializable). Новый токен вы сами тоже генерировать не можете (должен быть в их базе для вашего аккаунта).
Какой пролом в заборе?
- кто вам сказал, что это база (я исходников не видел, т.е. это мое предположение + наглядность при объяснении хака); но если это база то cast в char это полурешение, типизированный связный целочисленный параметр (т.е.
= @usrtoken
,= :usrtoken
или просто= ?
) в этом случае гораздо надежнее. Но... - не совершайте довольно распространенной ошибки: не стоит быть таким уверенным что «я то эту ошибку не допущу» © Chikey.
Просто ресерчеры и иже с ними, думают немного по другому. Т.е. привыкнув не видеть исходников, люди «по другую сторону баррикад» могут «увидеть» что-нибудь, что вы забыли или не поняли или еще чего. Тут известная поговорка про болт с резьбой. Не было бы float сегодня вы бы читали про «conditional race condition» для того же казино, но уже с другим условием. Примеров есть масса. - я как раз думаю, что сосредоточившись на «предотвратить race» (что они более-менее «успешно» сделали), они и накосячили с другим;
- чего вы привязались так к капче, она вообще чисто чтобы типа роботов исключить, каждый день автоматом накидывающих 20V$, ее например вообще могло не быть. Я вам больше скажу — ее кстати и не было в случае с «реальным» платежом (думаю что роль капчи играл токен платежной системы). Там все немного сложнее, но я не хочу сейчас вдаваться в подробности как я в этом случае «все поломал». Если хотите совесть, или чего там у меня вместо нее, не позволяет. Пока во всяком случае.
— админы и разрабы часто расценивают это как переход на личность или как минимум камень в свой огород;
— сотрудники от безопасности — как вызов;
— организация же (люди не в теме) — негодник сломал
Радует то, что адекватные люди то же есть.
это как переход на личность или как минимум камень в свой огород
Напоминает мне бывшее место работы — там каждый работал над определенным модулем (образно говоря), и заглядывать друг к другу в код было не принято (я не буду пытаться отвечать, почему так, не смогу). А я регулярно смотрел чужой код и просто глазами, и статическими анализаторами, и каждый раз мое замечание, действительно, как оскорбление воспринималось!
В общем я за пиар такого рода.
Ставлю плюс.
А понял — тикля, наверно. Тогда да — язык и вправду хорош :)
работа должна быть оплачена
К слову, они вас и не просили проверять их сайт. Давайте я вам тоже чего-нибудь хорошее сделаю, и денег попрошу.
Я, по своему обыкновению, сперва выложил им только результаты «эксплойта» — т.е. вот аккаунт, на нем виртуальный мильён денег. Аккаунт создан позавчера, ну и намек — мол расскажу что да как после доната.
Вымогательство.
И это не моя практика-изобретение, знаю что значительная часть ресерчеров, пентестеров и т.д. поступает подобным образом. А знаете почему — просто отношение к ним такое (своими руками вырыто) — т.е. с волками жить, по волчьи выть.
По поводу же моральной стороны вопроса, ответил ниже…
И пункт про других клиентов казино вы видимо совсем пропустили. Как быть с ними, если завтра «черный» пентестер это найдет и использует уже в своих целях. В чем виноваты эти люди, с которыми он завтра сядет играть?
Про научную сторону вопроса я промолчу лучше, т.к. вас это не интересует — вы сюда пришли видимо «потролить». И как видно к сожалению на хабре вы не один.
1) Нашел багу, хотя никто не просил
2) Получил профит — вирутальную валюту
3) Написал письмо, с намеком на вознаграждение в обмен на инфу
Тру ВайтХат делает так:
1) Нашел багу, хотя никто не просил
2) Сделал PoC, с минимально возможным ущербом
3) Написал письмо, где сразу же описал всю инфу об уязвимости, все детали и попросил бы быстрее зафиксить.
Поэтому то ВайтХатом Вас назвать не очень можно…
- пожалуйста не в моем посте;
- с чего вы взяли что ваше мнение не по теме (с технической стороны вопроса) мне интересно
- особенно доставило "попросил бы быстрее зафиксить."
Написал письмо, где сразу же описал всю инфу об уязвимости, все детали и попросил бы быстрее зафиксить.Я так и делаю иногда по доброте душевной, если это сайт например «про кошечек» или в теме опенсорс, который я очень люблю и уважаю. И активно развиваю, не только со стороны безопасности последнего. В основном — как разраб.
Ресерчинг — это мое хобби, позвольте мне его осуществлять, самостоятельно оценивая моральные стороны вопроса.
Я себя сам не причисляю ни к белым, ни к пушистым, ни к серым, ни к черным, ни к каким бы то ни было.
Но это не мешает мне быть законопослушным гражданином. А за мои моральные качества позвольте говорить все же людям, действительно меня знающих.
Если формально и по пунктам:
1) Пост Ваш, но я нашел его потому, что Вы поместили его в хаб ИБ, а значит он имеет место быть откомментирован и оценен теми, кто читает этот хаб
2) Еще раз скажу, коммент не только для Вас. Однако смею добавить, что ВЫ САМИ упомянули тематику вознаграждения и отношения к Вам со стороны владельца сервиса. Если эта тема не интересна и не важна, зачем вы вообще про это написали? Таким образом это является частью поста, а потому и откомментировано.
3) Да, предполагается, что ВайтХат преследует не корыстные цели. Он нашел уязвимость, и хочет не денег и славы, а что бы продукт/сервис стал безопаснее — идеализм и утопия? Отнюдь… много людей находили уязвимости гораздо сложнее, опаснее и интереснее и сообщали все детали, сразу же — потому что хотели, помочь, а не для того, что бы получить жалкую подачку. Как Вы сами сказали — по доброте душевной.
Я уверен, что при другом подходе с их стороны можно было бы получить всю инфу по ресёчу, а может и привлечь спеца, чтобы более полный пентест провёл…
Шантаж был бы если бы он вымогал, а не получив «поламал бы их полностью». Автор же просто предложил услуги по выявлению уязвимости, а Не хотите — я дальше пошёл, Вас трогать не буду. Оставайтесь при своих и ждите типа в шляпе потемнее.
После этого пошёл и сделал публикацию для сообщества.
Красавчик, чего сказать.
С жлобами по жлобски.
Пост Ваш, но я нашел его потому, что Вы поместили его в хаб ИБ, а значит он имеет место быть откомментирован и оценен теми, кто читает этот хабЭто если по теме хабра, а если вы при этом «всем кто читает» за моральное поведение, да в вашем извращенном восприятии (это я утрирую), рассказывать будете.
Может ИБ — хаб «Мораль и нравственность»?
сообщали все детали, сразу же — потому что хотели, помочь, а не для того, что бы получить жалкую подачкуА с чего вы решили, что я этого не делаю?
Чтобы не увеличивать эту и без того длинную, и особенно конструктивную ветку, гляньте на досуге, плз, там [UPD#1] в конце поста появился.
Скажу только вот про это вот «потому что хотели помочь» — я делаю постоянно и абсолютно безвозмездно уже десяток лет с гаком в опенсорсе.
И не вам мне этим тыкать — где, кому и по каким причинам (вам возможно не ведомым) мне это делать или не делать.
Я, по своему обыкновению, сперва выложил им только результаты «эксплойта» — т.е. вот аккаунт, на нем виртуальный мильён денег. Аккаунт создан позавчера, ну и намек — мол расскажу что да как после доната.
и
после совсем откровенного намека «работа должна быть оплачена», попытка сделать меня шантажистом (я уже друга адвоката думал подключать);
Собственно и вся «претензия» основана на этих предложениях. Это и есть то, почему можно подумать, что это вымогательство. Вам отказали вполне нормально. Если причины мне не ведомы, то это значит, что пост не достаточно детальный и о причинах читатель должен додумывать, но дело Ваше раскрывать эти причины или нет 8)
я делаю постоянно и абсолютно безвозмездно уже десяток лет с гаком в опенсорсе.
Но за Ваш вклад в опенсорс, спасибо. Это очень хорошее дело. Но к теме топика, ИБ, баг-хантинга и #NoMoreFreeBugs относится слабо…
Вам отказали вполне нормальноНет, мне отказали (не страшно, хобби) + сказали «давай сюда решение, ссука такая» (о_О) + угрожали «а потом мы посмотрим оставить ли это без последствий» (WTF).
Это если без ваших домыслов…
При этом я вел себя вполне корректно, не нарывался, не использовал хак для получения выгоды (не играл, не снимал деньги и т.д.), не принес никакого ущерба и главное, вокруг чего вы и иже с вами разводят сопли, ни с кого ничего не требовал. От слова совсем.
Все остались при своих.
Более того, они поимели с меня, заметьте совершенно бесплатно, знание — что у них что-то не в порядке. И возможно стимул это поправить (не знаю свечку не держал).
Я же поимел с них ругательства и осадок от общения с хамлом + неудовлетворенность из-за неоцененных усилий (и я не про деньги) + потерянное время (не на поиски эксплойта — это хобби, а на необходимость писать здесь вот такие «оправдательные» комменты).
1) Нашел багу, хотя никто не просил — потому что хобби и могу.
2) Сделал PoC, с минимально возможным ущербом — что продемонстрировать, если просто инфы о баге мало.
3) Написал письмо, где сразу же описал всю инфу об уязвимости, все детали и попросил бы быстрее зафиксить.
Вот у нас с Вами разногласия по пункту 3. Остальное — оценка Вашей морали, участие в опенсорс, играете на гитаре хорошо, переводите бабушек — я не обсуждаю. Вы можете быть хорошим человеком, в чем я НЕ сомневаюсь, но я считаю, что Ваш подход в 3м пункте не правильный. Даже если Вам хамят — это их проблемы, их не культурность и не образованность, это не значит, что в ответ на это можно становится «злее». Но это моя позиция, опять же не навязываю…
Но к теме топика, ИБ, баг-хантинга и #NoMoreFreeBugs относится слабо…Так я вам про что талдычу уже столько раз — ваше суждения о моей нравственности (основанное на ваших же имхо в корне не верных предположениях) тоже как бы «относится слабо». Какие-то у вас двойные стандарты.
От тебя честно не ожидал, ну да ладно, бог рассудит. Главное чтобы перед своей совестью, или тем что у меня там заместо, я был чист. Пока мне это думаю все же удается — по ночам ничего не грызет, по крайней мере за те ресёчи.
Требовать денег довольно «грязный» метод.
Приведу аналогию — мойщики лобовых стекол на перекрестках.
Да, МОЯ машина грязная. Но МНЕ решать, когда и как её мыть, а не ТОМУ человеку, кто подскочит, протрет 10 секунд лобовое стекло и тут же потребует денег.
Ведь любая работа должна оплачиваться?
- повторяю для тугих на ухо — денег ни у кого не требовал
- ваша аналогия не корректна — вам помыли заляпанное грязное стекло, вопросительно посмотрели через него, пожали плечами и ушли — вот правильная аналогия была бы (и главное мыли так что вы не заметили).
- минусите мне пост, все мои комменты так вас не устраивающие, но перестаньте, люди плз;
Хотите быть вайтхатом — сообщайте все детали, не требуйте денег, просто поинтересуйтесь о наличии багбаунти.
Будете требовать компенсации за оказанную работу — вы грейхат.
Будете использовать уязвимости для своих целей без уведомления вендора или владельца сайта — вы блекхат.
Во вторых же, мое личное отношение к вам будет зависить от тона, каким вы мне это скажете.
Я вообще-то щедр душой, но не когда мне в нее плюют.
нацеливаясь на максимальную «выгоду»Нет вы не правильно понимаете, я очень не беден, мне оно и не нужно как-бы (и зарабатываю я другим). Объяснить бы еще это моей дражайшей половинке — Ага! Снова за компьютером на ночь засел. Это раз.
Это мое хобби — т.е. там где интересно, а не где максимальная выгода. Это два.
Про труд — не совсем согласен, мне там мешает слово «Любой» — можно я все-таки сам решу, за что я желал бы получить «жалкую подачку», а где я могу по доброте душевной ли, по дружески ли не важно как — просто помочь.
Ответ: Не совсем…
Проще говоря, где-то сохраняется целое число T1 (скажем как int или bigint) например 180.
А затем сравнивается с числом T2, которое передается извне и меняется нами на число с плавающей точкой (допустим float) 180.01.
Если сравнение T1 с T2 происходит целочисленно (в int) то они равны, если как float (что случается если не уследить в некоторых алгоритмах или системах или явно не указать) — то они разные!
int(180) = int(180.01)
float(180) != float(180.01)
После сравнения — токен T2 легальный, и что не менее важно токен T2 не был еще использован — происходит увеличения остатка денег и оно инкрементируется, а T2 переписывает T1, но обрезается до целого если нет precision overflow. т.е. снова 180. И стандартным уже рэйс все повторяется снова и снова. Пока токен не устареет ну или пока время не выйдет…
Я поддерживаю автора — если вы нашли брешь в коммерческом проекте, то вы можете или продать ее 3м лицам или самим разработчикам.
Почему продать? Потому, что они платят своим программистам за работу, и если вы улучшаете их проект, то вы должны быть вознаграждены.
Главное правило — не входить в долгие дискуссии. Ответ должен быть максимально быстрым.
- конечно, спасибо за поддержку, но...
- просьба не разводить холивара на «пустом» месте относилась не только к «моралистам» (
«автор — вымогатель и шантажист»), но и к другой стороне, т.е. к людям, как вы, считающим что я возможно прав... - давайте уже закроем эту тему,
ибо надоело, т.к.:
- цимес статьи как-бы совершенно не в этом;
- не считаю нужным снова и снова комментировать моральную оценку моих действий (данную как положительно, так и отрицательно);
- как для юридических вопросов так и для нравственных изысканий наверняка существуют другие площадки, другие хабы, или как минимум другие посты;
- я совсем не против, если кто-нибудь из моралистов сделает свой пост или опрос на эту тему, в котором это будет обсуждаться хоть до второго пришествия. Более того с удовольствием сам бы перенес некоторые ветки отсюда в такой новый пост, если бы хабр такое умел — позволял
Комментарий для людей, надумавших попросить меня на тему поломать чего-то, ибо реально задолбали:
> Вариант 1. Меня обманули в онлайн-казино, пожалуйста помогите вывезти деньги
> Вариант 2. Есть идея как срубить кучу бабла, нужна консультация или помощь как взломать
нужное подставить...
> Вариант 3. Проиграл овер много денег, продал машину чтобы расчитаться с долгами, поуши в кредите, жена ушла от меня, у меня двое детей, ..., помоги... вернуть семью.
> Вариант N. Привет друг прочитал как ты взламывал казино а сейчас так можно просто очень много проиграл и нужны деньги
Мой универсальный ответ:
Я уголовкой и раньше не занимался и сейчас не занимаюсь, совсем. Да и вообще, я законопослушный нонче (да и всегда был по большому счету).
Обращаться к кому-либо с такими просьбами, ну то такое. И откуда у людей вера интересно, что их снова не обманут (уже те "хакеры") или, что много хуже, всё вообще не закончится проблемами с законом.
Это вообще нонсенс просить незнакомых людей в интернете помочь взломать чего либо. По многим причинам… Ну например, начиная с того, что если кто-то такое умеет и главное его ни законодательство, ни моральная сторона, ни совесть не смущают, остаётся вопрос — для чего ему в этой схеме вы?
Ну и заканчивая каким местом «очень много проиграл и нужны деньги» должно способствовать принятию вас в "подельники", не говоря уже о том чтобы как-то положительно характеризовать вас... Тем более что робингудов среди тех кого вы ищите - нет, и вы для них, простите, лох, которого развезти за грех не считается.
Поэтому, просто забудь, «друг»… И про проигранные деньги (оно того не стоит)… Как и про поиск взломщика через инет (ничем хорошим это не закончится).
Ну а деньги мало того что дело наживное, так ещё и можно на это смотреть как на плату за науку (типа митап "как не пролюбить деньги в интырнетах для чайников")…
Тем более что многие там были — кто деньги оставил в казино, кто на акциях или на бирже, кто в пирамидах и т.п., а кто-то в лотерею может просаживать... Вопрос только в том пошла ли наука впрок.
Пока не очень заметно.
Как я однажды взломал онлайн-казино