Худшее отверстие безопасности, которое вы видели?

Какая наихудшая дыра в безопасности, которую вы когда-либо видели? Вероятно, это хорошая идея, чтобы ограничить детали, чтобы защитить виновных.

Для чего стоит question о том, что делать, если вы найдете дыру в безопасности, и другое с некоторыми полезными ответами, если компания не отвечает (как представляется).

Ответ 1

С первых дней онлайн-магазинов:

Получение скидочной скидки 90% путем ввода .1 в поле количества корзины покупок. Программное обеспечение правильно рассчитало общую стоимость как .1 * стоимость, а человеческая упаковка заказа просто затушевывалась над странным ".". перед количеством, чтобы упаковать:)

Ответ 2

Самая прощающая дыра в безопасности и, к сожалению, очень распространенная и простая в использовании, - это взлом Google. Пример:

http://www.google.com/search?q=inurl%3Aselect+inurl%3A%2520+inurl%3Afrom+inurl%3Awhere

Удивительно, сколько страниц в Интернете, в частности, государственных сайтах, передает запрос SQL через строку запроса. Это худшая форма SQL-инъекции, и нет никаких усилий для поиска уязвимых сайтов.

С небольшими изменениями я смог найти незащищенные установки phpMyAdmin, незащищенные установки MySQL, строки запросов, содержащие имена пользователей и пароли и т.д.

Ответ 3

Социальная инженерия:

<Cthon98> hey, if you type in your pw, it will show as stars
<Cthon98> ********* see!
<AzureDiamond> hunter2
<AzureDiamond> doesnt look like stars to me
<Cthon98> <AzureDiamond> *******
<Cthon98> thats what I see
<AzureDiamond> oh, really?
<Cthon98> Absolutely
<AzureDiamond> you can go hunter2 my hunter2-ing hunter2
<AzureDiamond> haha, does that look funny to you?
<Cthon98> lol, yes. See, when YOU type hunter2, it shows to us as *******
<AzureDiamond> thats neat, I didnt know IRC did that
<Cthon98> yep, no matter how many times you type hunter2, it will show to us as *******
<AzureDiamond> awesome!
<AzureDiamond> wait, how do you know my pw?
<Cthon98> er, I just copy pasted YOUR ****** and it appears to YOU as hunter2 cause its your pw
<AzureDiamond> oh, ok.

От bash.org

Ответ 4

Настоящая история с моих ранних дней в Microsoft.

Вы не знали страха до того дня, когда вы просыпаетесь и видите заголовок на ZDNet.com, что утро " Худшая дыра в Internet Explorer была обнаружена в" Бла " Blah '- это код, который вы написали себе шесть месяцев назад.

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

(ОБНОВЛЕНИЕ: несколько ответов на вопросы, поднятые в комментариях:

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

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

В любом случае, ошибка заключалась в том, что объект, который НЕ был безопасен для использования в Internet Explorer, был случайно выпущен как помеченный как "безопасный для сценариев". Объект был способен записывать двоичные файлы - библиотеки типов OLE Automation, на самом деле - в произвольные места на диске. Это означало, что злоумышленник может создать библиотеку типов, содержащую определенные строки враждебного кода, сохранить ее до пути, который был известным исполняемым адресом, дать ему расширение того, что вызовет запуск script, и надеяться, что так или иначе пользователь случайно запускает код. Я не знаю никаких успешных атак "реального мира", которые использовали эту уязвимость, но с ней можно было создать рабочий эксплоит.

Мы отправили патч, довольно быстро, для этого, позвольте мне рассказать вам.

Я вызвал и впоследствии исправил еще много дыр в безопасности в JScript, но ни у кого из них не было нигде рядом с рекламой, которую она сделала.

Ответ 5

Надеюсь, вы заметите, что здесь не так. (На самом деле ужасно неправильно):

String emailBody = "";

for (int i = 0; i < subscribers.Count; i++)
{
    emailBody += "Hello " + subscribers[i].FirstName + ",";
    emailBody += "this is a reminder with your account information: \n\n:";
    emailBody += "Your username: " + subscribers[i].Username + "\n";
    emailBody += "Your password: " + subscribers[i].Password + "\n";
    emailBody += "Have a great day!";

    emailDispatcher.Send(subscribers[i].EmailAddress, emailBody);
}

Последний получатель был самым счастливым;)

Ответ 6

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

alt text

Ответ 7

Самое худшее ядро ​​безопасности, которое я когда-либо видел, действительно было закодировано по-настоящему и заставило Google Bot удалить всю мою базу данных.

Назад, когда я впервые изучал классический ASP, я закодировал свое собственное основное приложение для блога. Каталог со всеми сценариями администратора был защищен NTLM в IIS. Однажды я перешел на новый сервер и забыл повторно защитить каталог в IIS (oops).

На домашней странице блога была ссылка на главный экран администратора, а на главном экране администратора был DELETE LINK для каждой записи (без подтверждения).

Однажды я обнаружил, что каждая запись в базе данных удалена (сотни личных записей). Я думал, что какой-то читатель ворвался на сайт и злонамеренно удалил каждую запись.

Я пришел, чтобы узнать из журналов: Google Bot просканировал сайт, выполнил ссылку администратора и продолжил следовать всем DELETE LINKS, тем самым удалив каждую запись в базе данных. Я чувствовал, что заслужил награду Dumbass of the Year, которая случайно попала под угрозу в Google Bot.

К счастью, у меня были резервные копии.

Ответ 8

Самое страшное ядро, которое я когда-либо видел, было ошибкой в ​​веб-приложении, где предоставление пустого имени пользователя и пароля регистрировало вас как администратора:)

Ответ 9

Как только это заметили на URL-адресе веб-сайта.

http://www.somewebsite.com/mypage.asp?param1=x&param2=y&admin=0

Изменение последнего параметра admin = 1 дало мне права администратора. Если вы собираетесь слепо доверять пользовательскому вводу, по крайней мере, не телеграфируйте, что вы это делаете!

Ответ 10

Я видел это в The Daily WTF.

<script language="javascript">
<!--//
/*This Script allows people to enter by using a form that asks for a
UserID and Password*/
function pasuser(form) {
    if (form.id.value=="buyers") { 
        if (form.pass.value=="gov1996") {              
            location="http://officers.federalsuppliers.com/agents.html" 
        } else {
            alert("Invalid Password")
        }
    } else {  
        alert("Invalid UserID")
    }
}
//-->
</script>

Ничто не может победить это ИМХО.

Ответ 11

В университете, не менее, который останется безымянным, у них были все свои действия, которые передаются через URL вместо опубликованной формы.

Сработало удовольствие, пока Google Bot не появился и не пропустил все свои URL-адреса и не стер их.

Ответ 12

Удивленный никто не воспитывал социальную инженерию, но я получил удар из этой статьи.

Резюме: злонамеренные пользователи могут купить несколько десятков флеш-накопителей, загрузить их с помощью автоматического запуска вируса или трояна, а затем посыпать флеш-накопители на автостоянке компании поздно ночью. На следующий день все появляются на работе, натыкаются на блестящее, конфетное, непреодолимое оборудование и говорят себе: "О, вау, бесплатный флеш-накопитель, интересно, что на нем!" - через 20 минут вся сетевая сеть закрыта.

Ответ 13

"Педо Меллон минно", "Говорите другу и войдите", на ворота Мории.

Ответ 14

Microsoft Bob
(Кредит: Dan 20 Century Abandonware)

Если вы введете свой пароль неправильно в третий раз, вас спросят, забыли ли вы свой пароль.

http://img132.yfrog.com/img132/8397/msbob10asignin15.gif

Но вместо того, чтобы иметь безопасность, например, продолжая запрашивать правильный пароль до его ввода или блокировки после нескольких неправильных попыток, вы можете ввести любой новый пароль, и он заменит исходный. Любой может сделать это с любой защищенной паролем учетной записи Microsoft Bob.

Предварительной проверки подлинности не требуется. его средства User1 могут изменить свой собственный пароль, просто запоминая их пароль три раза, а затем вводя новый пароль в четвертый раз - никогда не использовать "сменить пароль".

Это также означает, что User1 может изменить пароли User2, User3... точно так же. Любой пользователь может изменить любой другой пароль пользователя, просто опустив его три раза, а затем введите новый пароль при появлении запроса - и затем они смогут получить доступ к учетной записи.

http://img132.yfrog.com/img132/9851/msbob10asignin16.gif

Ответ 15

У меня был прежний домашний адрес Джо Х Х, и ему нужно было узнать его новый адрес в том же городе, но не имел возможности связаться с ним. Я полагал, что он получал обычную ежедневную кучу каталогов почтовых заказов, поэтому я произвольно назвал номер 800 для See Candies (в отличие от Victoria Secret, или Swiss Colony, или любой другой большой почтовой программы):

Мне: "Привет, я Джо X. Я думаю, что вы дважды меня отправили в свой список рассылки, как на мой старый адрес, так и на мой новый адрес. Показывает ли ваш компьютер мне [старый адрес] или в [ поддельный адрес]?"

Оператор: "Нет, мы показываем вам [новый адрес]".

Ответ 16

Предоставление 1 = 1 в текстовом поле перечисляет всех пользователей в системе.

Ответ 17

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

Это был мой друг, который работал над этим концертом, но суть его заключалась в том, что цены на предметы в определенном, теперь очень популярном онлайн-магазине (и все остальном) были сохранены в самом HTML как скрытое поле. Еще в первые дни эта ошибка забила много интернет-магазинов, они только начали выяснять сеть. Очень мало понимания безопасности, я имею в виду, действительно, кто собирается загрузить HTML, отредактировать скрытое поле и повторно отправить заказ?

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

Если бы я мог выбрать другое, это были бы проблемы канонизации пути в веб-приложениях. Замечательно иметь возможность делать foo.com?file =../../../../etc/passwd

Ответ 18

Активация пароля корневого каталога базы данных в исходное состояние происходит случайно. Это было очень плохо, потому что это был исходный контроль над Sourceforge.

Излишне говорить, что пароль очень быстро изменился.

Ответ 19

Не меняя пароли администратора, когда ключевые ИТ-сотрудники покидают компанию.

Ответ 20

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

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

Ответ 21

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

Ответ 22

Когда я впервые присоединился к компании, в которой я сейчас работаю, мой босс просматривал существующий веб-сайт электронной коммерции будущего нового клиента. Это было в первые дни как IIS, так и электронной коммерции, и безопасность была, скажем так, менее жесткой.

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

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

Ответ 24

Когда мне было 13 лет, в моей школе открылась социальная сеть для студентов. К сожалению для них я нашел ошибку безопасности, в которой вы могли изменить URI на другой идентификатор пользователя, например "? UserID = 123", и войти в систему для этого пользователя. Очевидно, что я сказал моим друзьям, и в конце концов школы социальная сеть была заполнена порно.

Не рекомендовал бы это.

Ответ 25

Я думаю, что пустое поле имени пользователя/пароля для доступа суперпользователя, безусловно, самое худшее. Но я видел себя:

if (password.equals(requestpassword) || username.equals(requestusername))
{
    login = true;
}

Слишком плохо один оператор делает такую ​​большую разницу.

Ответ 26

Шахта была бы для банка, в котором я был клиентом. Я не смог войти в систему, поэтому позвонил в службу поддержки клиентов. Они попросили меня указать мое имя пользователя и ничего другого - не задавали никаких вопросов безопасности или не пытались проверить мою личность. Затем вместо отправки пароля reset на адрес электронной почты, который у них был в файле, они спросили меня, на какой адрес электронной почты его отправить. Я дал им адрес, отличный от того, что у меня было в файле, и смог reset мой пароль.

Таким образом, по сути, всем хакерам понадобится мое имя пользователя, и он сможет получить доступ к моей учетной записи. Это было для крупного банка, о котором слышали бы не менее 90% людей в Соединенных Штатах. Это произошло около двух лет назад. Я не знаю, был ли это плохо подготовленный представитель службы поддержки клиентов, или если это была стандартная процедура.

Ответ 27

Я расскажу об одном, который я создал. Вид.

Годы и годы и годы назад компания, с которой я работал, хотела индексировать на своем веб-сайте ASP. Итак, я пошел и настроил Index Server, исключил несколько каталогов администратора, и все было хорошо.

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

Помните детей, белые списки не являются черными списками.

Ответ 28

Как о онлайн-менеджере документов, который разрешил устанавливать все разрешения безопасности, которые вы могли запомнить...

То есть, пока вы не попадете на страницу загрузки... download.aspx? documentId = 12345

Да, documentId был идентификатором базы данных (auto-increment), и вы могли бы зацикливать каждый номер, и каждый мог получить все документы компании.

При появлении предупреждения об этой проблеме ответ менеджера проекта был: Хорошо, спасибо. Но никто этого раньше не заметил, так что держите его как есть.

Ответ 29

Один из самых простых, но действительно достойных затрат:

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

Например:

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

С помощью редактора DOM я могу перейти в форму "вживую" и изменить значение от £899.00 до £0.01, а затем нажать кнопку отправить...

Когда я нахожусь на стороне PayPal, я вижу, что сумма составляет 1 пенни, поэтому я плачу, и PayPal перенаправляет некоторые параметры на начальный сайт покупки, который только проверяет параметры, такие как payment_status=1 и т.д., и т.д. и не проверяйте оплаченную сумму.

Это может быть дорогостоящим, если у них нет достаточной регистрации на месте или автоматически отправляются продукты.

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

Ответ 30

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