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


413

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

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


47
Должно быть сообщество wiki imo ...
ChristopheD

Отличная тема! Я надеюсь, что это может быть связано с DailyWTF.com
Дейл

Почему закрыты? Это совершенно разумный вопрос? !!
Джон

15
60 ответов и 28 голосов, казалось бы, перевесили 5 голосов, чтобы закрыться (это заняло целый день, AFAIK). но я воздержусь от голосования, чтобы вновь открыться, пока это не будет обсуждено.
rmeador

7
Даже если ваш вопрос был вики-сообществом в течение нескольких часов, комментарий все еще является хорошим комментарием для upvote, поскольку он напоминает людям, что вопросы, подобные этому, должны быть вики-сообществом . Это то, что я думаю.
Джорен

Ответы:


646

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

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


75
Это определенно аргумент в пользу использования строго типизированной системы.
Powerlord

54
Что за сайт? Я хочу скидку 90% !!!
amischiefr

58
Возможно, вам следовало бы запросить количество в 10% вместо этого. ;)
MiffTheFox

81
Джефф Безос упомянул, что в самые ранние времена Amazon у вас могло быть отрицательное количество книг, и Amazon зачислял на ваш счет (и, вероятно, ждал, пока вы отправите его им). См. 0:47 на youtube.com/watch?v=-hxX_Q5CnaA
Джефф Мозер,

10
Хотелось бы увидеть лицо клиента, который фактически получил .1 жесткий диск, за который он заплатил.
Рет

575

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

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

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

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



6
Боже мой, как невероятно глупо. Это был бы я, идущий этим разработчиком в отдел кадров с коробкой в ​​руках.
squillman

95
маленькие столики Бобби снова бьют ... xkcd.com/327
gbjbaanb

86
OMFG ... в следующий раз, когда у меня будет плохой день, я оставлю несколько столов
Майкл Ниманд

11
Что мне действительно нравится в этом примере, так это то, что первый результат взят из блога Oracle.
Рави Валлау

400

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

<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 ******'s and it appears to YOU as hunter2 cause its your pw
<AzureDiamond> oh, ok.

С bash.org


2
Раньше случалось все время на Runescape.
EvilTeach

7
Этот конкретный обмен вряд ли действительно произошел (кто наберет «эр», когда они пытаются что-то скрыть?), Но, тем не менее, забавен.
Майкл Майерс

1
mmyers: маловероятно, что кто-то настолько глуп, чтобы получить rm -rf'd, но это определенно происходит. Я видел это сам :)
Мэтью Изелин

25
Нет ничего более опасного, чем мозг идиотов
Эрлз

1
@ EvilTeach, они фактически реализовали это на RuneScape. Даже не шучу!
CorsiKa

339

Правдивая история из моих первых дней в Microsoft.

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

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

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

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

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

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

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

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


81
Возможно, это на самом деле 2 подвига безопасности; другой - как получить код на сервер производственной сборки, чтобы никто не заметил и не одобрил изменение ;-p
Марк

8
«проверил мой код, изменил кучу настроек ключа реестра безопасности без уважительной причины, проверил его снова, и никогда не получал обзор кода и никому об этом не говорил» - мне это не кажется некомпетентностью, это звучит как злой умысел от кого-то точно знал , что они делают.
Джульетта

80
«Никогда не приписывайте злости то, что может быть адекватно объяснено глупостью». - Бритва Ханлона
Дэвид Р. Триббл

15
Не существует единой системы контроля версий для Microsoft. В настоящее время большинство команд используют Source Depot или Team Foundation. Неудивительно, что команды разработчиков Visual Studio обычно используют Team Foundation. Знаешь, ешь свою собачью еду.
Эрик Липперт

40
Кто проверяет ZDNet перед выходом на работу?
Нил Н

274

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

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);
}

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


226
Вы говорите о том, что вы храните незашифрованные пароли или о том, что emailBody никогда не очищается? Я даже не уверен, что хуже.
Кристоф Провост

208
Вы имеете в виду не использовать StringBuilder? : D (
Шучу

58
@Kristof - я предполагаю, что он имеет в виду тот факт, что последний пользователь получает список ВСЕХ пользователей и пароли. :)
Дон Брэнсон

141
Я абсолютно ненавижу системы, которые отправляют мне по электронной почте мой пароль в процессе регистрации. Это имеет два недостатка: 1. Они хранят мой открытый текст где-то в своей системе. Если не их постоянная база данных пользователей, то определенно их система обработки регистрации. 2. Он был отправлен по электронной почте, в виде обычного текста или в формате HTML, по SMTP-адресу через почтовые реле через Интернет. Есть много людей в середине, которые могли бы перехватить это. По крайней мере, если вы чувствуете необходимость присылать мне электронные письма с защищенной информацией, позвольте мне указать мой открытый ключ PGP для шифрования!
Джесси С. Slicer

16
Я однажды использовал хеши MD5 для защиты паролей в базе данных. Но после того, как я запустил результаты через радужную таблицу и сопоставил около 50% паролей ... Я подумал, что сейчас самое время добавить соль.
Мэтью Уайтед

206

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

альтернативный текст


204

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

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

На домашней странице блога была ссылка на главный экран администратора, а на главном экране администратора была УДАЛЕННАЯ ССЫЛКА для каждой записи (без подтверждения).

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

Я пришел, чтобы узнать из журналов: робот Google сканировал сайт, следовал по ссылке администратора и продолжал следовать всем УДАЛЕННЫМ ССЫЛКАМ, удаляя тем самым каждую запись в базе данных. Я чувствовал, что заслужил награду Dumbass of the Year, случайно скомпрометированную ботом Google.

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


13
Думаю, это показывает, насколько распространена ошибка.
si618 25.09.09

96
Вот почему вы всегда должны POST для изменения действий.
рекурсивный

7
@recursive: true, но если каталог не защищен паролем, он не остановит человека, удаляющего все.
Рассерженная шлюха

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

7
Нет, ты не заслужил эту награду. Вы бы заслужили это, если бы это произошло, и у вас не было резервных копий.
Райан Ланди

187

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


144
Баг или фича для ленивых разработчиков? :)
si618

9
Я видел такой код. Обычно это происходит потому, что при поиске пользователя используется LIKE, как в «SELECT * FROM [User] Where UserName LIKE«% »+ userName +«% ». А поскольку администратор обычно является первым пользователем в базе данных, он возвращает этого пользователя.
Пьер-Ален Вижан

11
почему вы делаете LIKE с именем пользователя? ... чтобы я мог быть администратором, набрав adm, когда я собираюсь набрать Adam
Matthew Whited

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

3
Я видел это во многих корпоративных веб-приложениях, которые аутентифицируются по каталогу LDAP. В LDAP пустой пароль приводит к успешному анонимному входу в систему. Анонимный пользователь не может ничего сделать, но веб-приложения, использующие этот механизм, не зашли так далеко, чтобы проверить - они просто предполагают «успех = правильный пароль»!
SimonJ

174

Однажды заметил это на URL сайта.

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

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


19
Это удобная функция;) Разве вы не видели WarGames? Что-то вроде «каждый хороший разработчик добавляет бэкдор в свою систему», хе-хе.
Алекс

38
Поэтому, возможно, им следовало использовать & admin = JOSHUA
JohnFx

165

Я видел это в 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>

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


21
Я думаю, что это может быть не так глупо, как вы думаете. Этот простой пароль может работать как кнопка «Да, я из федерального правительства», с той разницей, что лицо, которое пытается его использовать не по назначению, также может быть привлечено к ответственности за «предоставление фальшивых учетных данных» (или как его называют? )
иля н.

29
Илья: Это Javascript, поэтому он виден пользователю. Увидев это, вы можете просто перейти на members.federalsuppliers.com/agents.html , минуя любой вид контроля.
Alsciende

68
Не волнуйтесь, если сайт защищен авторским правом, DMCA обеспечивает 100% защиту. Вы не можете "обойти" Javascript.
Стив Ханов

13
@ Стив Ханов: У вас есть интересное определение "обхода". Если я наберу этот URL в своем браузере ... или даже скопирую / вставлю его ... Я ничего не пропускаю, я просто использую свой браузер, чтобы перейти к адрес, который я положил в моей адресной строке. Что является одной из предполагаемых целей веб-браузера.
Powerlord

46
Поздравляю, ты невиновен, слишком плохо, чтобы убедить присяжных, что это стоит 300 тысяч,
Дастин Гетц,

141

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

Эта штука работала, пока не появился Google Bot, не просмотрел все их URL и не стер их базу данных.


18
Старый добрый SQL-инъекция по дизайну. Я работал с функцией создания отчетов, в которую встроена эта «функция».
ICodeForCoffee,

18
@ICodeForCoffee: где здесь SQL-инъекция? Это просто сбивает с толку цели GET vs POST. Это довольно распространенная ошибка начинающих веб-разработчиков. Я вспоминаю, как читал статью Daily WTF об этой проблеме.
rmeador

Разве не очень ранняя версия, если в Википедии есть эта проблема? У них были ссылки, которые отменяли бы изменения или что-то в этом роде.
DisgruntledGoat

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

34
Надеюсь, что они смогли получить их из кеша Google.
fastcodejava

137

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

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


69
Авторун это зло.
Марк Рэнсом

22
@mmyers: запрет флешек не очень хороший подход. Прервите автозапуск / автозапуск.
Джей

10
Читайте некоторое время назад, другой подход (со времен дискеты). Запустите загрузочную зараженную дискету с надписью «Бухгалтерские данные - конфиденциально» в коридоре офиса и подождите 5 минут. Irresistible!
Родриго

13
К счастью, я всегда могу загрузиться с Linux Live CD и изучить флешку оттуда.
Дэвид Торнли

6
@Jay - К сожалению, сколько людей посмотрят на файлы, а затем дважды щелкните по ним «чтобы посмотреть, что они делают»? Во многих случаях бан является необходимостью, потому что люди не думают.
JasCav


103

Microsoft Боб
(Фото: Дэна 20-го века Abandonware )

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

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

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

Предварительная аутентификация не требуется. Это означает, что Пользователь1 может изменить свой собственный пароль, просто трижды набрав неверный пароль, а затем в четвертый раз введя новый пароль - никогда не прибегая к «смене пароля».

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

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


7
Это то же самое поведение, что и сама Windows, когда компьютер не управляется доменом. Даже в Windows Vista Ultimate вы можете сбросить пароль в любое время. Я предполагаю, что отказ в обслуживании считается большей угрозой, чем несанкционированный доступ; тем более, что вы можете получить большинство вещей, просто перемонтировав диск в любом случае. Я полагаю, что целью пароля в этом случае является обнаружение вторжения, а не предотвращение.
Джеффри Л Уитледж

1
@Джеффри: Дело в том, что, когда у черной шляпы есть физический доступ, она в значительной степени "игра окончена". Если вы хотите защититься от этого, вам нужно серьезное шифрование (а также способы сканирования аппаратных и программных кейлоггеров и т. Д.).
Дэвид Торнли

8
Кто-то умнее меня заметил, что это просто хорошее моделирование угроз. «Боб» предназначался для домашнего использования в эпоху, не связанную с сетью, и вы были НАМНОГО более подвержены попыткам DOS от вашей младшей сестры или похмелья, чем от какого-то грабителя. Боб сообщил, что к вашей учетной записи обращались (потому что ваш старый пароль больше не работал), но не пытался сделать больше.
bgiles

20
Моя жена только что увидела, что я смотрю на это ... Она: "О, черт возьми! Что это за программа ?!" Я: "... Microsoft Боб?" Она: "Я любил Microsoft Боба!" Вздох ...
Тим Гудман

10
@ChristianWimmer - Звучит так, словно даришь людям рюкзак с надписью «Парашют», чтобы они привыкли к ощущению человека на спине, но, не сказав им, что там нет парашюта.
JohnFx

102

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

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

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


36
Ах, должен любить социальную инженерию. Человеческий аспект безопасности обычно самый слабый.
EMP


95

Если указать 1 = 1 в текстовом поле, перечислены все пользователи системы.


325
Привет от Бобби Столов.
Гамбо

4
как за комментарий @ Gumbo проголосуют в 4 раза больше, чем за ответ?
Ли Райан

12
Просто, в 4 раза больше людей, которые проголосовали за этот вопрос, проголосовали за его комментарий: /
RobertPitt 30.10.10

4
Расскажет ли кто-нибудь из 221 участника голосования за Бобби Таблицы остальным, кто такой Бобби?
kirk.burleson

15
@ kirk.burleson: xkcd.com/327
gspr 30.10.10

76

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

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

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

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


9
Круто, у тебя никогда не будет пропавшего левого носка!
si618,

75
Ты когда-нибудь носил носки?
Алекс Барретт

32
Заказ прошел, и система исполнения оповестила склад. Мы поняли, что это, вероятно, сработало, и сказали нашим контактным лицам, что они должны остановить заказ. Видимо, чуть позже позвонил менеджер склада, чтобы спросить о заказе, чтобы убедиться, что он реальный. Он сообразил, что это программная ошибка.
Коллин

27
@StuperUser, на ногах, конечно.
Страж

12
Нет проблем с хранением, просто взломайте сайт Ikea, чтобы заказать 100 000 комплектов ящиков, чтобы положить их в них,
Нил Эйткен,

64

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

Само собой разумеется, пароль был изменен очень быстро.


144
Хорошо, пароль был изменен очень быстро ... но кем ?
Имон Нербонн

1
Вниз по этой дороге. Многие системы (например, такие как django) практически поощряют это, так как они просят вас ввести пароль вашей БД в файл настроек, что, естественно, очень легко проверить.
mlissner

56

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


1
или оставив заводские настройки по умолчанию, такие как admin / admin (также или особенно в оборудовании) ...
Gnark

47
У меня стало еще хуже - я ушел из университета после того, как меня зацепили, и в каталоге говорилось, что они создают для меня работу более высокого класса после того, как я закончил, но позже я узнал, что он сказал моему менеджеру, что они не должны Повысьте меня. Излишне говорить, что я не был рад этому. Я специально сказал своему менеджеру менять каждый пароль, к которому у меня был доступ. Через неделю после моего ухода я получаю электронное письмо от моего менеджера с паролем root, «на всякий случай, если мне это нужно». Я связался с сисадмином, чтобы убедиться, что он снова был изменен, так как я не хотел падать, если что-то пошло не так.
Джо

10
@ Sophomore: Я вспоминаю в биографии Фейнмана, что он комментирует, что многие из гигантских, ультра-безопасных сейфов, в которых хранятся секреты Манхэттенского проекта, были оставлены в комбинациях по умолчанию.
Брайан

12
Я могу только представить, как шпион СССР добирается до сейфа и пытается все, что он может взломать, чтобы взломать сейф: «Черт! Я не могу взломать это. Не было бы смешно, если бы я мог просто… вау, забить один» для матери России!"
Эрик

3
Не могу улыбнуться, читая это, летом я работал техническим специалистом в очень известной шведской компании, и когда спустя несколько лет я вернулся на работу инженером, у меня возникли проблемы с установкой некоторого программного обеспечения. Я просто запомнил старый пароль администратора и вуаля! это сработало =)
Виктор Сер

50

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

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


Ух ты ... У меня была точная вещь, случившаяся со мной в ASP-коде, который я унаследовал.
Radu094

Я поддерживаю приложение, которое имеет именно эту проблему. Это наверняка в самом верху списка исправлений. К счастью, это не сайт электронной коммерции.
Квентин Старен

12
Это происходит чаще, чем большинство людей осознают.
NotMe 22.10.10

47

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


Конечно, это означает, что вы злонамеренно сделали что-то, чтобы заставить их отправлять вам товары обманным путем, если вы действительно делаете это, и сказали «им» свой адрес.
Дэвид Торнли

6
Да, именно это делает эту дыру в безопасности. На самом деле мы не нажали кнопку покупки, но могли бы. И, основываясь на новостях, некоторые люди это сделали.
Эрик Дж.

45

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

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

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


1
Это было почти двенадцать лет назад, когда управляемые данными веб-сайты были новинкой; многие сайты работали против Access или аналогичных, потому что никто не хотел вкладывать средства в лицензию на SQL Server для чего-то, что считалось «сторонним» для их основного бизнеса. Как все изменилось!
Марк Белл


44

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

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


3
почему бы тебе не порекомендовать это? что случилось?
Simon_Weaver

55
@Simon_Weaver: Я думаю , 13 лет, дети обычно не имеют хороший вкус к порно.
бездельник

@slacker +1, чтобы поставить вас на 1000 повторений! кроме того, я не думаю, что рейтинговые комментарии дают вам репутацию :-(
Simon_Weaver

2
«хороший вкус порно» - есть оксюморон.
Занн Андерсон

43

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

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

Жаль, что один оператор имеет такое большое значение.


10
вау, у меня, естественно, есть принуждение, чтобы это исправить
wag2639

Факт, что реальный пароль используется вместо хеша, на самом деле также довольно плохой ...
Питер Криенс

Сначала я был "что не так?", А затем я был "AAAAaaaaaaaAAAA! OMG"
Bojan Kogoj

42

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

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


22
и что это за банк, пожалуйста?
TigerTiger

5
@Si: он пишет «Я был клиентом ...». Я думаю, что это отвечает на вопрос. :)
ShdNx

8
Это был Washington Mutual, который был захвачен FDIC и продан Chase в начале этого года. У них также были странные сообщения об ошибках. Когда я пытался установить свой пароль из временного, я продолжал получать ошибку «Пароли не совпадают», даже если они были одинаковыми, и я даже копировал / вставлял. Я понял, что если я добавлю «недопустимые символы» как косую черту, вместо того, чтобы произносить недопустимые символы, это даст мне другое сообщение.
Шон,

11
@ Элизабет: Хм ... вы понимаете, что это предотвратить фишинг правильно? Если кто-то пытается скопировать или имитировать веб-сайт банка, он может выглядеть точно так же, но, по-видимому, у него нет доступа к базе данных, поэтому он не может получить правильную картину безопасности. Вот почему это там. Не все пользователи достаточно умны, чтобы проверить сертификат (который может быть подвергнут аналогичному обману)
mpen

13
Защита ваших финансовых счетов - это излишне? ...
Джо Филлипс

36

Я поделюсь тем, что создал. Вроде.

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

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

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


76
Я думаю, что «белый список, а не черный список», хотя зачастую это хороший совет, не является правильным уроком для изучения здесь. Правильный урок: «Не размещайте личные данные на общедоступном сервере». Кроме того, «не позволяйте продавцам обращаться к серверу».
rmeador

7
О, гармония между ответом и аватаром.
Чагдаш Текин

35

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

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

Например:

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

Используя DOM Editor, я могу зайти в форму «вживую» и изменить значение с £899.00на, £0.01а затем нажать «Отправить» ...

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

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

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


12
+1 Согласен. В ситуации размещенной платежной страницы исходный веб-сайт не должен позволять пользователю выставлять значения для публикации; вместо этого страница должна отправлять сообщения обратно самому себе по щелчку пользователя, а затем сервер формулирует и отправляет сообщение о публикации непосредственно в платежный «шлюз» с соответствующими значениями. Все зависит от того, что ожидает шлюз и как с ним можно взаимодействовать, но я не вижу, чтобы какой-либо шлюз стоил того, чтобы не иметь более безопасного сценария, чем вы описали. Может быть, я ошибаюсь, хотя.
Джон К

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

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

35

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

Пока вы не попали на страницу загрузки ... download.aspx? DocumentId = 12345

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

Когда предупредили об этой проблеме, руководитель проекта ответил: «Хорошо, спасибо. Но никто не заметил этого раньше, поэтому давайте оставим это как есть.


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

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

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

2
Вот отличный пример этого. В этой статье NY Times: nytimes.com/2009/01/14/dining/14power.html?_r=1&ref=dining изображенная картинка является заменой гораздо более веселой оригинальной версии, все еще доступной здесь: graphics8.nytimes.com /images/2009/01/14/dining/14power2_650.jpg
Джейми Treworgy

34

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


42
Другая дыра в безопасности - это сотрудники, верно? "Ну, сэр, компьютер говорит, что вы получаете 15 пицц бесплатно, так что ... вот, пожалуйста! ... я получу чаевые?"
Натан Лонг

6
... в вашей пиццерии тоже есть DVD? Oo
mpen

5
Как бывший водитель пиццы ... нет, мы не давали крысам задницу о таких вещах. И наши менеджеры тоже.
eyelidlessness

48
Разве парень доставки не придет, чтобы забрать пиццу, которую ты им продаешь ?
Джон Б.

7
Ух ты .. а курьер должен был дать тебе чаевые? =))
Андрей Ринея
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.