Pior falha de segurança que você já viu? [fechadas]


413

Qual é a pior falha de segurança que você já viu? Provavelmente, é uma boa idéia manter os detalhes limitados para proteger os culpados.

Quanto vale a pena, aqui está uma pergunta sobre o que fazer se você encontrar uma falha de segurança e outra com algumas respostas úteis se uma empresa (aparentemente) não responder.


47
Deve ser imo wiki da comunidade ...
ChristopheD

Great thread! Espero que possa ser ligado a partir DailyWTF.com
Dale

Por que fechado? É uma pergunta perfeitamente razoável? !!
johnc

15
as 60 respostas e 28 upvotes parecem superar os 5 votos para fechar (que levou o dia todo para acumular, AFAIK). mas evitarei votar para reabrir até que isso seja discutido.
Rmeador 24/09/09

7
Mesmo que sua pergunta tenha sido um wiki da comunidade por horas, o comentário ainda é um bom comentário para votar, pois lembra as pessoas que perguntas semelhantes a essa devem ser um wiki da comunidade . É o que eu penso.
Joren

Respostas:


646

Desde os primeiros dias das lojas online:

Para obter um desconto de 90%, digite 0,1 no campo de quantidade do carrinho de compras. O software calculou adequadamente o custo total como 0,1 *, e o humano que embalou o pedido simplesmente encobriu o ímpar "." na frente da quantidade para embalar :)


75
Esse é definitivamente um argumento a favor do uso de um sistema fortemente tipado.
Powerlord 24/09/09

54
Qual é o site? Quero um desconto de 90% !!!
Amischiefr 24/09/09

58
Talvez você devesse ter pedido uma quantia de 0,10%. ;)
MiffTheFox

81
Jeff Bezos mencionou que, nos primeiros dias da Amazon, você poderia ter uma quantidade negativa de livros e a Amazon creditaria sua conta (e provavelmente esperaria que você a enviasse a eles). Veja 0:47 em youtube.com/watch?v=-hxX_Q5CnaA
Jeff Moser

10
Teria adorado ver o rosto do cliente que realmente recebeu os .1 discos rígidos pelos quais pagou.
relet 16/07

575

A falha de segurança menos perdoável e, infelizmente, muito comum e fácil de encontrar, é a invasão do Google . Caso em questão:

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

É incrível quantas páginas na Internet, sites do governo em particular, passam uma consulta SQL pela string de consulta. É a pior forma de injeção de SQL e não é necessário nenhum esforço para encontrar sites vulneráveis.

Com pequenos ajustes, consegui encontrar instalações desprotegidas do phpMyAdmin, instalações desprotegidas do MySQL, cadeias de consulta contendo nomes de usuário e senhas, etc.



6
Oh, meu Deus, que inconcebivelmente estúpido. Seria eu marchar com o desenvolvedor para o RH com uma caixa na mão.
squillman

95
mesas pouco Bobby ataca novamente ... xkcd.com/327
gbjbaanb

86
OMFG ... próxima vez que eu tiver um dia ruim, eu vou cair algumas mesas
Michael Niemand

11
O que eu realmente gosto neste exemplo é que o primeiro resultado é de um blog da Oracle.
Ravi Wallau

400

Engenharia social:

<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.

From bash.org


2
Costumava acontecer o tempo todo no Runescape.
EvilTeach

7
É improvável que essa troca em particular tenha realmente acontecido (quem digitaria "er" quando estiver tentando encobrir alguma coisa?), Mas, mesmo assim, engraçada.
Michael Myers

1
mmyers: também é altamente improvável que alguém seja estúpido o suficiente para receber rm-rf'd, mas isso definitivamente acontece. Eu mesmo já vi isso :)
Matthew Iselin

25
Não há nada mais inseguro do que o cérebro idiotas
Earlz

1
@EvilTeach eles realmente implementaram isso no RuneScape. Nem mesmo brincando!
precisa saber é o seguinte

339

História verdadeira dos meus primeiros dias na Microsoft.

Você não conhece o medo até o dia em que acorda e vê a manchete no ZDNet.com naquela manhã: "O pior buraco de segurança do Internet Explorer já foi descoberto em 'Blah' ", onde 'Blah' é o código que você escreveu seis meses antes .

Imediatamente após o trabalho, verifiquei os logs de alterações e descobri que alguém de outra equipe - alguém em quem confiávamos para fazer alterações no produto - havia retirado o meu código, alterado várias configurações da chave de registro de segurança sem um bom motivo, fez o check-in novamente e nunca recebeu uma revisão de código nem contou a ninguém sobre isso. Até hoje não tenho idéia do que ele pensava estar fazendo; ele deixou a empresa logo depois. (Por sua própria vontade.)

(ATUALIZAÇÃO: Algumas respostas a questões levantadas nos comentários:

Primeiro, observe que escolho assumir a posição de caridade de que as alterações na chave de segurança foram não intencionais e baseadas em descuido ou desconhecimento, em vez de malícia. Não tenho evidências de um jeito ou de outro e acredito que é sensato atribuir erros à falibilidade humana.

Segundo, nossos sistemas de check-in são muito, muito mais fortes agora do que há doze anos atrás. Por exemplo, agora não é possível fazer o check-in do código sem que o sistema de check-in envie a lista de alterações por email para as partes interessadas. Em particular, as alterações feitas no final do ciclo do navio têm muito "processo" em torno delas, o que garante que as alterações corretas sejam feitas para garantir a estabilidade e a segurança do produto.)

De qualquer forma, o problema era que um objeto que NÃO era seguro para ser usado no Internet Explorer havia sido acidentalmente lançado como marcado como "seguro para scripts". O objeto foi capaz de gravar arquivos binários - bibliotecas do tipo OLE Automation, de fato - em locais arbitrários do disco. Isso significava que um invasor podia criar uma biblioteca de tipos que continha determinadas seqüências de códigos hostis, salvá-la em um caminho que era um local executável conhecido, dar a extensão de algo que faria com que um script fosse executado e esperar que, de alguma forma, o usuário acidentalmente executaria o código. Não conheço ataques bem-sucedidos do "mundo real" que usem essa vulnerabilidade, mas foi possível criar uma exploração funcional com ela.

Enviamos um patch rapidamente para esse, deixe-me dizer.

Causei e, posteriormente, consertei muitas outras falhas de segurança no JScript, mas nenhuma delas chegou nem perto da publicidade que se fez.


81
Indiscutivelmente, trata-se de duas explorações de segurança; outro que é como obter código em um servidor de compilação de produção sem que ninguém perceba / aprovar a mudança ;-p
Marc Gravell

8
"fiz check-out do meu código, alterei várias configurações da chave de registro de segurança sem um bom motivo, fiz o check-in novamente e nunca recebi uma revisão de código nem contei a ninguém sobre ele" - não me parece incompetência, ele Parece que a intenção maliciosa de alguém sabia exatamente o que estava fazendo.
Julieta

80
"Nunca atribua à malícia aquilo que pode ser adequadamente explicado pela estupidez." # Navalha de Hanlon
David R Tribble

15
Não existe um sistema de controle de origem obrigatório para uso na Microsoft. Atualmente, a maioria das equipes usa o Source Depot ou o Team Foundation. Sem surpresa, as equipes de produtos do Visual Studio geralmente usam o Team Foundation. Coma seu próprio alimento para cães, você sabe.
22611 Eric Lippert

40
Quem verifica o ZDNet antes de ir trabalhar?
Neil N

274

Espero que você consiga identificar o que há de errado aqui. (Terrivelmente errado, de fato):

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

O último destinatário foi o mais feliz;)


226
Você está falando sobre o armazenamento de senhas em texto sem formatação ou sobre o fato de o emailBody nunca ser limpo? Eu nem tenho certeza do que é pior.
21119 Kristof Provost

208
Você quer dizer não usar StringBuilder? : D (brincando Apenas.)
ShdNx

58
@ Kristof - eu acho que ele quer dizer o fato de que o último usuário recebe uma lista de TODOS os usuários e senhas. :)
Don Branson

141
Eu detesto absolutamente os sistemas que me enviam de volta a minha senha como parte do processo de registro. Isso tem duas falhas: 1. Eles estão armazenando minha senha de texto sem formatação em algum lugar do sistema. Se não for seu banco de dados permanente de usuários, definitivamente seu sistema de processamento de registros. 2. Foi enviado via EMAIL, texto sem formatação ou HTML, SMTP através de retransmissões de correio pela Internet. Há vários homens no meio que podem interceptar isso. No mínimo, se você precisar enviar e-mails com informações seguras, deixe-me especificar minha chave PGP pública para criptografá-la!
Jesse C. Slicer

16
Usei hashes MD5 para proteger as senhas em um banco de dados uma vez. Mas depois que eu corri os resultados em uma tabela do arco-íris e correspondi a cerca de 50% das senhas ... achei que era uma boa hora para adicionar sal.
Matthew Whited

206

Os antigos terminais burros do IBM System 36 tinham uma combinação de teclado que iniciava a gravação de uma macro. Portanto, quando um terminal não estava conectado, você poderia iniciar a gravação de uma macro e deixá-la nessa posição. Na próxima vez que alguém fizer login, as teclas serão gravadas na macro e a gravação terminará automaticamente quando o número máximo de teclas permitido for gravado. Volte mais tarde e reproduza a macro para fazer login automaticamente.

texto alternativo


204

A pior falha de segurança que eu já vi foi realmente codificada pela sua e fez com que o Google Bot excluísse meu banco de dados inteiro.

Quando eu aprendi o ASP clássico pela primeira vez, codifiquei meu próprio aplicativo básico de blog. O diretório com todos os scripts administrativos foi protegido pelo NTLM no IIS. Um dia, mudei para um novo servidor e esqueci de proteger novamente o diretório no IIS (oops).

A página inicial do blog tinha um link para a tela principal do administrador, e a tela principal do administrador tinha um DELETE LINK para cada registro (sem confirmação).

Um dia, encontrei todos os registros excluídos do banco de dados (centenas de entradas pessoais). Eu pensei que algum leitor havia invadido o site e excluído maliciosamente todos os registros.

Eu descobri pelos registros: o Google Bot rastreara o site, seguia o link do administrador e seguia todos os DELETE LINKS, excluindo todos os registros do banco de dados. Eu senti que merecia o prêmio Dumbass do ano sendo inadvertidamente comprometido pelo Bot do Google.

Felizmente eu tive backups.


13
Acho que mostra o quão comum é um erro.
si618

96
É por isso que você deve sempre postar para alterar ações.
recursivo

7
@recursive: true, mas se o diretório não estiver protegido por senha, ele não impede que um ser humano exclua tudo.
usar o seguinte

2
Eu tive esse problema com plugins de navegador que pré-buscam links. Certa vez, trabalhei em um site de blogs e ficamos perplexos por dias em que um usuário relatou que todos os comentários em seu blog desapareceriam misteriosamente.
Matthew

7
Não, você não mereceu esse prêmio. Você teria merecido se isso tivesse acontecido e você não tivesse backups.
Ryan Lundy

187

O pior buraco que eu já vi foi um bug em um aplicativo da Web, onde fornecer um nome de usuário e senha vazios faria o login como administrador :)


144
Um bug ou um recurso para desenvolvedores preguiçosos? )
Si618

9
Eu já vi esse código. Isso ocorre geralmente porque a pesquisa do usuário usa LIKE, como em "SELECT * FROM [User] Onde UserName LIKE '%" + userName + "%'". E como o administrador normalmente é o primeiro usuário no banco de dados, ele retorna esse usuário.
Pierre-Alain Vigeant

11
por que você faria um LIKE com um nome de usuário ... para que eu pudesse ser administrador por adm digitação quando eu ment digite Adam?
Matthew Whited

20
A maioria das empresas oferece três tentativas de logon com um determinado ID de usuário antes de bloquear a conta. Portanto, é trivialmente fácil bloquear outra conta com três senhas ruins.
David R Tribble

3
Eu já vi isso em muitos aplicativos corporativos da web que se autenticam em um diretório LDAP. No LDAP, uma senha vazia resulta em um login anônimo bem - sucedido . O usuário anônimo não pode fazer muito, mas os aplicativos da web que usam esse mecanismo não chegam ao ponto de verificar - eles apenas assumem "sucesso = senha correta"!
Simonj

174

Uma vez percebido isso no URL de um site.

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

Alterar o último parâmetro para admin = 1 me deu privilégios de administrador. Se você vai confiar cegamente na entrada do usuário, pelo menos, não diga que está fazendo isso!


19
É um recurso útil;) Você não viu o WarGames? Algo como "todo bom desenvolvedor adiciona um backdoor ao seu sistema" hehe.
alex

38
Então talvez eles devessem ter usado & admin = JOSHUA
JohnFx

165

Eu vi esse no 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>

Nada pode vencer este IMHO.


21
Eu acho que isso pode não ser tão estúpido quanto você pensa. Essa senha trivial pode funcionar como o botão "sim, sou do governo federal", com a diferença de que uma pessoa que tenta abusar dela, se for pega, também pode ser processada por "fornecer credenciais falsas" (ou como elas chamam? )
ilya n.

29
ilya: é Javascript, portanto fica visível para o usuário. Depois de ver isso, basta acessar o site oficiais.federalsuppliers.com/agents.html , ignorando qualquer tipo de controle.
Alsciende 24/09/09

68
Não se preocupe, desde que o site tenha direitos autorais, o DMCA fornece 100% de proteção. Você não tem permissão para "contornar" o Javascript.
Steve Hanov

13
@ Steve Hanov: Você tem uma definição interessante de "contornar" Se eu digitar esse URL no meu navegador ... ou mesmo copiá-lo / colá-lo ... Não estou ignorando nada, estou apenas usando o meu navegador para acessar um endereço que coloquei na minha barra de endereços. Qual é um dos propósitos pretendidos de um navegador da web.
Powerlord 24/09/09

46
parabéns, você é inocente, pena que custa 300k para convencer um júri de que
Dustin Getz

141

Em uma universidade, que permanecerá sem nome, eles tiveram todas as suas consultas de ação sendo passadas pelo URL em vez de postadas no formulário.

A coisa funcionou bem até que o Google Bot apareceu e percorreu todos os URLs e limpou o banco de dados.


18
Boa e velha injeção de SQL por design. Eu tenho trabalhado com a funcionalidade de relatórios que teve esse "recurso" construído dentro.
ICodeForCoffee

18
@ICodeForCoffee: onde está a injeção de SQL aqui? Isso está apenas confundindo os objetivos de GET vs POST. É um erro bastante comum por desenvolvedores da Web iniciantes. Lembro-me de ler um artigo do Daily WTF sobre esse problema exato.
rmeador 24/09/09

Não era uma versão muito antiga se a Wikipedia tivesse esse problema? Eles tinham links que reverteriam edições ou algo assim.
DiscruntledGoat

14
O verdadeiro problema aqui é que o Googlebot pode limpar o banco de dados sem nunca se autenticar.
MiffTheFox 30/11/2009

34
Espero que eles possam recuperá-los do cache do Google.
precisa

137

Surpreendido que ninguém tenha trazido à tona a engenharia social, mas tive um gostinho deste artigo .

Resumo: usuários mal-intencionados podem comprar algumas dúzias de pen drives, carregá-los com um vírus ou cavalo de Troia auto-executado e depois borrifá-los no estacionamento de uma empresa tarde da noite. No dia seguinte, todo mundo aparece para trabalhar, tropeça no hardware irresistível e brilhante, em forma de doce, e diz para si mesmo "oh uau, unidade flash gratuita, eu me pergunto o que há nela!" - 20 minutos depois, toda a rede da empresa é conectada.


69
A execução automática é má.
Mark Ransom

22
@ mmyers: proibir drives flash não é a melhor abordagem. Interrompa a execução automática / reprodução automática.
Jay

10
Leia há algum tempo, outra abordagem (desde os tempos dos disquetes). Coloque um disquete infectado com inicialização chamado "Dados contábeis - confidenciais" em um corredor do escritório e aguarde 5 minutos. Irresistível!
Rodrigo

13
Felizmente, sempre posso inicializar a partir de um Linux Live CD e examinar a unidade flash a partir daí.
David Thornley

6
@ Jay - Infelizmente, quantas pessoas olham para os arquivos e depois clicam duas vezes neles "para ver o que fazem"? Proibir é uma necessidade muitas vezes porque as pessoas não pensam.
21410 JasCav


103

Microsoft Bob
(Crédito: Dan's 20th Century Abandonware )

Se você digitar sua senha incorretamente pela terceira vez, será perguntado se você esqueceu sua senha.

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

Mas, em vez de ter segurança, continue solicitando a senha correta até que ela seja inserida ou bloqueando você após várias tentativas incorretas, você pode inserir qualquer nova senha e ela substituirá a original! Qualquer pessoa pode fazer isso com qualquer conta Microsoft Bob "protegida" por senha.

Não há autenticação prévia necessária. Isso significa que o usuário1 pode alterar sua própria senha digitando sua senha três vezes e digitando uma nova senha pela quarta vez - sem precisar usar "alterar senha".

Isso também significa que o Usuário1 pode alterar as senhas do Usuário2, Usuário3 ... exatamente da mesma maneira. Qualquer usuário pode alterar a senha de qualquer outro usuário digitando incorretamente três vezes e digitando uma nova senha quando solicitado - e então pode acessar a conta.

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


7
Esse é o mesmo comportamento do próprio Windows quando um computador não é administrado por um domínio. Mesmo no Windows Vista Ultimate, você pode redefinir uma senha a qualquer momento. Suponho que a negação de serviço seja considerada uma ameaça maior do que o acesso não autorizado; especialmente porque você pode obter a maioria das coisas apenas remontando a unidade em outro lugar. Acredito que o objetivo da senha neste caso seja a detecção de intrusões e não a prevenção.
Jeffrey L Whitledge

1
@ Jeffrey: O problema é que, uma vez que o chapéu preto tem acesso físico, é praticamente "game over". Se você quiser se proteger, precisará de criptografia séria (além de maneiras de procurar keyloggers de hardware e software, etc.).
21710 David Thornley

8
Alguém mais sábio do que eu apontou que isso é apenas uma boa modelagem de ameaças. 'Bob' era para uso doméstico em uma era sem rede e você era MUITO mais propenso a sofrer uma tentativa de DOS por sua irmãzinha ou ressaca do que por algum ladrão. Bob informou que sua conta foi acessada (porque sua senha antiga não funcionava mais), mas não tentou fazer mais.
Bgiles

20
Minha esposa acabou de me ver olhando para ela ... Ela: "Oh meu Deus! Que programa é esse ?!" Eu: "... Microsoft Bob?" Ela: " Adorei o Microsoft Bob!" Suspiro ...
Tim Goodman

10
@ChristianWimmer - Parece como dar às pessoas uma mochila marcada como "Pára-quedas" para que elas se acostumem com a sensação de uma nas costas, mas sem dizer a elas que não há pára-quedas lá.
JohnFx

102

Eu tinha o antigo endereço residencial de Joe X e precisava conhecer seu endereço atual mais recente na mesma cidade, mas não tinha como entrar em contato com ele. Achei que ele estava recebendo a pilha diária usual de catálogos de pedidos por correspondência, então liguei arbitrariamente para o número 800 dos doces da See (em oposição à Victoria's Secret, ou Swiss Colony, ou qualquer outra grande mala direta):

Eu: "Olá, sou Joe X. Acho que você me colocou na sua lista de e-mails duas vezes, tanto no meu endereço antigo quanto no meu novo endereço. Seu computador me mostra em [endereço antigo] ou [endereço falso] ? "

Operador: "Não, mostramos a você em [novo endereço]."


36
Ah, tenho que amar a engenharia social. O aspecto humano da segurança é geralmente o mais fraco.
EMP


95

Dar 1 = 1 em uma caixa de texto lista todos os usuários do sistema.


325
Saudações das mesas de Bobby.
Gumbo

4
como o comentário de @ Gumbo é votado 4 vezes mais que a resposta?
Lie Ryan

12
Simplesmente, 4 vezes a quantidade de pessoas que votaram na pergunta votaram no seu comentário: /
RobertPitt 30/10/10

4
Um dos 221 votantes que se levantaram do comentário das mesas de Bobby nos diria o que diabos é essa mesa?
Kirk.burleson

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

76

Sendo um consultor de segurança de aplicativos para a vida, existem muitos problemas comuns que permitem obter a administração de um site por meio de algo. Mas a parte mais legal é quando você pode comprar um milhão de dólares em meias.

Era um amigo meu trabalhando nesse show, mas o ponto principal era que os preços de itens em uma determinada loja on-line agora muito popular (e tudo mais) eram armazenados no próprio HTML como um campo oculto. Nos primeiros dias, esse bug mordeu muitas lojas on-line, elas estavam apenas começando a descobrir a web. Muito pouca conscientização de segurança, quero dizer quem realmente fará o download do HTML, editar o campo oculto e reenviar o pedido?

Naturalmente, alteramos o preço para 0 e encomendamos 1 milhão de pares de meias. Você também pode alterar o preço para negativo, mas isso fez com que parte do estouro de buffer do software de cobrança de back-end terminasse a transação.

Se eu pudesse escolher outra, haveria problemas de canonização de caminho em aplicativos da web. É maravilhoso poder fazer foo.com?file=../../../../etc/passwd


9
Impressionante, você nunca mais teria uma meia esquerda perdida!
si618 24/09/09

75
Você já comprou as meias?
Alex Barrett

32
O pedido foi cumprido e o sistema de atendimento alertou o armazém. Percebemos que provavelmente funcionou e informamos ao nosso ponto de contato que eles deveriam interromper o pedido. Aparentemente, um pouco mais tarde, um gerente de armazém ligou perguntando sobre o pedido para ter certeza de que era real. Ele sabia sabiamente que se tratava de um erro de software.
Collin

27
@StuperUser, em seus pés, é claro.
strager

12
Nenhum problema com o armazenamento, basta cortar o site da Ikea à ordem 100.000 conjuntos de gavetas para colocá-los em,
Neil Aitken

64

Confirmando a senha raiz do banco de dados no controle de origem por acidente. Foi muito ruim, porque era o controle de origem no Sourceforge.

Escusado será dizer que a senha foi alterada muito rapidamente.


144
OK, a senha foi alterada muito rapidamente ... mas por quem ?
Eamon Nerbonne

1
Foi por este caminho. Muitos sistemas (como Django, por exemplo) praticamente incentivar este, uma vez que pedir para você colocar sua senha DB para o arquivo de configurações, o que naturalmente, é muito fácil de check-in.
mlissner

56

Não alterar senhas de administrador quando os principais funcionários de TI deixarem a empresa.


1
ou deixando os padrões de fábrica como admin / admin (bem ou especialmente no hardware) ...
Gnark

47
Eu tenho um pior - Deixei uma universidade depois de ter sido amarrado junto, com o diretório me dizendo que eles estavam criando um trabalho de grau mais alta para mim depois que eu tinha se formado, mas eu achei mais tarde que ele disse ao meu gerente que foram não para Me promova. Escusado será dizer que eu não estava feliz com isso. Eu disse especificamente ao meu gerente para alterar todas as senhas às quais eu tinha acesso. Na semana seguinte à minha saída, recebo um e-mail do meu gerente com a senha root, 'caso precise dela'. Entrei em contato com o administrador do sistema para ter certeza de que foi alterado novamente, pois não queria sofrer uma queda se algo desse errado.
Joe

10
@Sophomore: Lembro-me na biografia de Feynman, comentando que muitos dos cofres gigantes ultra seguros que abrigam os segredos do projeto de Manhattan foram deixados nas combinações padrão.
Brian Brian

12
Eu posso imaginar um espião da URSS chegando ao cofre e tentando tudo o que ele pode imaginar para arrombar o cofre: "Droga! Eu não posso arrombar. Não seria engraçado se eu pudesse apenas ... uau, marcar um pela mãe Russia!"
Eric

3
Não consigo sorrir ao ler isso. Eu estava trabalhando como técnico de TI em uma empresa sueca muito conhecida e, quando voltei vários anos depois para trabalhar como engenheiro, tive algum problema ao instalar algum software. Do nada, lembrei a senha antiga do administrador e pronto! funcionou =)
Viktor Sehr

50

Embora este não seja o pior buraco de segurança que eu já vi. Mas isso é pelo menos o pior que eu me descobri:

Uma loja on-line bastante bem-sucedida de audiolivros usou um cookie para armazenar as informações de identificação do usuário atual após a autenticação bem-sucedida. Mas você pode alterar facilmente o ID do usuário no cookie, acessar outras contas e comprar nelas.


Uau ... Eu tive exatamente a coisa que aconteceu comigo em um código ASP que eu herdei.
Radu094

Eu mantenho um aplicativo com esse problema exato. Está no topo da lista de correções, com certeza. Felizmente, não é um site de comércio eletrônico.
você está

12
Isso acontece com mais frequência do que a maioria das pessoas imagina.
NotMe

47

Logo no início da era .com, eu trabalhava para um grande varejista no exterior. Observamos com grande interesse nossos concorrentes lançarem uma loja on-line meses antes de nós. É claro que fomos testá-lo ... e rapidamente percebemos que nossos carrinhos de compras estavam se misturando. Depois de brincar um pouco com a string de consulta, percebemos que poderíamos seqüestrar as sessões um do outro. Com um bom timing, você pode alterar o endereço de entrega, mas deixar o método de pagamento em paz ... tudo isso depois de ter enchido o carrinho com seus itens favoritos.


Obviamente, isso significa que você fez algo maliciosamente para que eles enviassem mercadorias fraudulentamente, se você realmente fez isso, e disse a eles o seu endereço.
23815 David Thornley

6
Sim, é isso que o torna um grande furo de segurança. Na verdade, não pressionamos o botão de compra, mas poderíamos ter. E, com base em reportagens, algumas pessoas o fizeram.
317 Eric Eric

45

Quando entrei na empresa em que trabalho atualmente, meu chefe estava olhando o site de comércio eletrônico existente de um possível novo cliente. Isso ocorreu nos primeiros dias do IIS e do comércio eletrônico, e a segurança foi, digamos, menos que rigorosa.

Para encurtar a história, ele alterou um URL (por curiosidade) e percebeu que a navegação no diretório não estava desativada; portanto, você pode cortar o nome da página no final do URL e ver todos os arquivos no servidor web.

Acabamos navegando em uma pasta contendo um banco de dados do Access, que baixamos. Era todo o banco de dados de clientes / pedidos de comércio eletrônico, repleto de vários milhares de números de cartão de crédito não criptografados.


1
Isso foi há quase doze anos, quando os sites baseados em dados eram uma novidade de ponta; muitos sites rodavam no Access ou similar, porque ninguém queria investir em uma licença do SQL Server para algo que era visto como um `` aparte '' do negócio principal. Como as coisas mudaram!
Mark Bell


44

Quando eu tinha 13 anos, minha escola abriu uma rede social para os alunos. Infelizmente para eles, encontrei um bug de segurança em que você poderia alterar o URI para outro ID do usuário como "? UserID = 123" e se conectar ao usuário. Obviamente contei aos meus amigos e, no final, a rede social da escola estava cheia de pornografia.

Não recomendaria embora.


3
por que você não recomendaria isso? o que aconteceu?
Simon_Weaver

55
@Simon_Weaver: Acho que as crianças de 13 anos geralmente não gostam muito de pornografia.
slacker

@ Slacker +1 para colocá-lo em 1000 representantes! exceto que eu não acho que comentários de classificação lhe dê rep :-(
Simon_Weaver

2
"bom gosto para pornografia" - há um oxímoro.
Zann Anderson

43

Eu acho que o campo de nome de usuário / senha em branco para acesso de superusuário é de longe o pior. Mas um que eu me vi era

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

Pena que um operador faz uma diferença tão grande.


10
wow, eu, naturalmente, têm uma compulsão para corrigi-lo
wag2639

O fato de que uma senha real é usado em vez de um hash é, na verdade também bastante ruim ...
Peter Kriens

Primeiro eu era "o que há de errado?", E então eu estava "OMG aaaaaaaaaaaaaaa!"
Bojan Kogoj

42

O meu seria para um banco do qual eu era cliente. Como não consegui fazer logon, liguei para o atendimento ao cliente. Eles me pediram meu nome de usuário e nada mais - não fizeram perguntas de segurança ou tentaram verificar minha identidade. Em vez de enviar uma redefinição de senha para o endereço de e-mail que eles tinham no arquivo, eles me perguntaram para qual endereço de e-mail enviar. Eu dei a eles um endereço diferente do que eu tinha no arquivo e consegui redefinir minha senha.

Então, basicamente, tudo que um hacker precisa é do meu nome de usuário e ele pode acessar minha conta. Isso era para um grande banco do qual pelo menos 90% das pessoas nos Estados Unidos teriam ouvido falar. Isso aconteceu cerca de dois anos atrás. Não sei se era um representante de atendimento ao cliente mal treinado ou se esse era o procedimento padrão.


22
e que banco é esse, por favor?
TigerTiger 24/09/09

5
@ Si: escreve 'Fui cliente de ...'. Eu acho que isso responde à pergunta. :)
ShdNx

8
Era o Washington Mutual, que foi apreendido pelo FDIC e vendido ao Chase no início deste ano. Eles também tinham mensagens de erro estranhas. Quando tentei definir minha senha a partir da primeira, recebi o erro "Senhas não correspondem", mesmo sendo iguais e até copiando / colando. Percebi que se eu colocasse "caracteres inválidos" como uma barra, em vez de dizer caracteres inválidos, isso me daria essa outra mensagem.
Sean

11
@Elizabeth: Uhm ... você percebe que é para evitar phishing, certo? Se alguém tentar copiar ou imitar o site do banco, ele pode parecer exatamente o mesmo, mas, presumivelmente, eles não têm acesso ao banco de dados, portanto, não podem obter a imagem de segurança correta. É por isso que está lá. Nem todos os usuários são suficientes inteligente para verificar o certificado (que pode ser intimidado semelhante)
MPEN

13
Proteger suas contas financeiras é um exagero? ...
Joe Phillips

36

Vou compartilhar um que eu criei. Mais ou menos.

Anos e anos e anos atrás, a empresa para a qual eu trabalhava procurava a indexação em seu site ASP. Então, lá fui eu configurar o Index Server, excluir alguns diretórios de administração e tudo estava bem.

Por mais desconhecido que alguém tivesse dado a um vendedor o acesso ftp ao servidor da Web para que ele pudesse trabalhar em casa, eram os dias da conexão discada e era a maneira mais fácil de trocar arquivos ... e ele começou a fazer o upload de coisas, incluindo documentos detalhando a marcação em nossos serviços .... qual servidor de indexação indexou e começou a ser exibido quando as pessoas pesquisavam "Custos".

Lembre-se de crianças, listas brancas e não listas negras.


76
Eu acho que "listas brancas e não listas negras", embora muitas vezes sejam bons conselhos, não é a lição correta a aprender aqui. A lição correta é "não coloque dados privados em um servidor público". Além disso, "não permita que o pessoal de vendas acesse o servidor".
rmeador 24/09/09

7
Oh, a harmonia entre a resposta e o avatar.
Çağdaş Tekin 06/10/09

35

Um dos mais simples, mas realmente valiosos, é:

Os sistemas de pagamento que usam mecanismos como o PayPal podem ser falhos porque a resposta do PayPal após o pagamento ter sido bem-sucedido não é verificada como deveria.

Por exemplo:

Posso acessar um site de compra de CD e adicionar algum conteúdo ao carrinho. Depois, durante as etapas de pagamento, geralmente há um formulário na página preenchido com campos para paypal e um botão de envio para "Pagar".

Usando um editor DOM, posso entrar no formulário "ao vivo" e alterar o valor de £899.00para £0.01e clicar em enviar ...

Quando estou do lado do PayPal, vejo que o valor é de 1 centavo, então pago e o PayPal redireciona alguns parâmetros para o site de compra inicial, que apenas valida parâmetros como payment_status=1, etc., etc. e não validar o valor pago.

Isso pode ser caro se eles não tiverem registro suficiente no local ou os produtos forem despachados automaticamente.

O pior tipo de site são sites que fornecem aplicativos, software, música etc.


12
+1 Concordado. Na situação da página de pagamento hospedada, o site de origem não deve permitir que o usuário direcione os valores a serem publicados; em vez disso, a página deve postar de volta para si mesma após o clique do usuário e, em seguida, o servidor formulará e enviará uma postagem para o "gateway" de pagamento diretamente com os valores apropriados. Tudo depende do que o gateway espera e como as interações podem ser feitas com ele, mas não consigo ver nenhum gateway que valha a pena não ter um cenário mais seguro do que o que você descreveu. Talvez eu esteja errado.
John K

você pode imitar as solicitações de postagem via servidor, enviando os dados dessa maneira para garantir que os dados enviados ao gateway sejam exatamente o mesmo e depois redirecioná-los com o cabeçalho do local.
RobertPitt

O PayPal possui uma opção de criptografia que permite que o site impeça isso. O site envia os dados para si primeiro, criptografa os dados do pedido no servidor com uma chave conhecida apenas por eles e pelo PayPal e depois envia esses dados ao PayPal que os descriptografa. Os dados não criptografados do pedido nunca são enviados nos campos de formulário dessa maneira. É apenas uma opção, portanto, nem todos os sites que usam o PayPal fazem dessa maneira. Eles deveriam embora!
Mikel

35

Que tal um gerenciador de documentos on-line, que permite definir todas as permissões de segurança que você lembra?

Isso é até você chegar na página de download ... download.aspx? DocumentId = 12345

Sim, o documentId era o ID do banco de dados (incremento automático) e você poderia fazer um loop em cada número e qualquer pessoa poderia obter todos os documentos da empresa.

Quando alertado para esse problema, a resposta do gerente de projeto foi: Ok, obrigado. Mas ninguém notou isso antes, então vamos mantê-lo como está.


56
Eu realmente odeio essa atitude, tenho entendido algumas vezes. Me faz querer deixar que outros o façam apenas para lhes ensinar uma lição.
syaz 24/09/09

Finalmente consegui a aprovação para preencher um buraco como esse no meu último emprego ... depois de meses reclamando.
eyelidlessness

Não é incomum encontrar sites que permitem fazer isso. Você verá um diretório de artigos recentes ou arquivados, mas não poderá voltar mais na lista do que uma página ou duas sem precisar fazer login. Basta abrir o primeiro artigo e alterar o parâmetro correto no URL para qualquer postagem número que você deseja ver qualquer artigo.
bob-the-destroyer

2
Aqui está um ótimo exemplo disso. Neste artigo do NY Times: nytimes.com/2009/01/14/dining/14power.html?_r=1&ref=dining a imagem mostrada substitui a versão original muito mais hilária, ainda disponível aqui: graphics8.nytimes.com /images/2009/01/14/dining/14power2_650.jpg
Jamie Treworgy

34

Uma entrega de pizza norueguesa tinha uma brecha na segurança, onde você podia pedir quantidades negativas de pizzas em seu novo e brilhante portal de internet e obtê-las gratuitamente.


42
O outro furo de segurança são os funcionários, certo? "Bem, senhor, o computador diz que você recebe 15 pizzas de graça, então ... aqui está você! ... eu recebo uma dica?"
Nathan Long

6
... a sua pizzaria também distribui DVDs? Oo
mpen 26/09/09

5
Como um ex-motorista de pizza ... não, nós não dava a mínima para esse tipo de coisa. E nem nossos gerentes.
eyelidlessness

48
Não seria a entrega cara passar por aqui para recolher as pizzas que você está vendendo -los?
Jon Jon B

7
Uau .. e o entregador teve que lhe dar a dica? =))
Andrei Rînea
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.