Il peggior buco di sicurezza che hai visto? [chiuso]


413

Qual è la peggior falla di sicurezza che tu abbia mai visto? È probabilmente una buona idea limitare i dettagli per proteggere i colpevoli.

Per quello che vale, ecco una domanda su cosa fare se trovi una falla nella sicurezza, e un'altra con alcune risposte utili se un'azienda non sembra (sembra) rispondere.


47
Dovrebbe essere il wiki della comunità ...
ChristopheD,

Ottimo filo! Spero che possa essere collegato da DailyWTF.com
Dale,

Perché chiuso È una domanda perfettamente ragionevole? !!
johnc,

15
le 60 risposte e i 28 voti sembrano superare i 5 voti per chiudere (che ha richiesto tutto il giorno per accumularsi, AFAIK). ma mi asterrò dal voto per riaprire fino a quando questo non sarà stato discusso.
rmeador,

7
Anche se la tua domanda è stata wiki della comunità per ore, il commento è ancora un buon commento da votare, in quanto ricorda alle persone che domande simili a questa dovrebbero essere wiki della comunità . Questo è quello che penso.
Joren,

Risposte:


646

Dall'inizio dei negozi online:

Ottenere uno sconto del 90% inserendo .1 nel campo quantità del carrello. Il software calcolò correttamente il costo totale come costo di .1 * e l'imballaggio umano semplicemente superò il dispari "." di fronte alla quantità da imballare :)


75
Questo è sicuramente un argomento a favore dell'utilizzo di un sistema fortemente tipizzato.
Powerlord,

54
Qual è il sito? Voglio uno sconto del 90% !!!
amischiefr,

58
Forse avresti dovuto invece richiedere una quantità del 0,10%. ;)
MiffTheFox,

81
Jeff Bezos ha detto che nei primissimi giorni di Amazon, potresti avere una quantità negativa di libri e Amazon accrediterebbe il tuo account (e presumibilmente aspettando che tu lo spedisca a loro). Vedi 0:47 su youtube.com/watch?v=-hxX_Q5CnaA
Jeff Moser,

10
Mi sarebbe piaciuto vedere il volto del cliente che gli è stato effettivamente consegnato il disco rigido .1 per il quale ha pagato.
Rilasciato il

575

La falla di sicurezza meno perdonabile, e purtroppo molto comune e facile da trovare, è l' hacking di Google . Caso in questione:

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

È incredibile quante pagine su Internet, in particolare i siti governativi, passano una query SQL attraverso la stringa di query. È la peggior forma di iniezione SQL e non ci vuole alcuno sforzo per trovare siti vulnerabili.

Con piccole modifiche, sono stato in grado di trovare installazioni non protette di phpMyAdmin, installazioni non protette di MySQL, stringhe di query contenenti nomi utente e password, ecc.



6
Oh mio Dio, quanto inconcepibilmente stupido. Sarei io a portare lo sviluppatore verso le risorse umane con una scatola in mano.
squillman,

95
i tavolini Bobby colpiscono ancora ... xkcd.com/327
gbjbaanb

86
OMFG ... la prossima volta che ho una brutta giornata, vado a buttare giù alcuni tavoli
Michael Niemand,

11
Quello che mi piace davvero di questo esempio è che il primo risultato proviene da un blog Oracle.
Ravi Wallau,

400

Ingegneria sociale:

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

Da bash.org


2
Accadeva sempre su Runescape.
EvilTeach

7
È molto improbabile che questo particolare scambio sia realmente accaduto (chi scriverebbe "er" quando stanno cercando di nascondere qualcosa?), Ma comunque divertente.
Michael Myers

1
mmyer: è anche altamente improbabile che qualcuno sia abbastanza stupido da ottenere rm -rf'd, ma questo succede sicuramente. L'ho visto da solo :)
Matthew Iselin il

25
Non c'è niente di più insicuro del cervello degli idioti
Earlz,

1
@EvilTeach lo hanno effettivamente implementato su RuneScape. Neanche scherzando!
corsiKa

339

Storia vera dai miei primi giorni in Microsoft.

Non hai conosciuto paura fino al giorno in cui ti svegli e vedi il titolo su ZDNet.com quella mattina è "Il peggior buco della sicurezza di Internet Explorer mai scoperto in" Blah " " dove "Blah" è il codice che hai scritto sei mesi prima .

Immediatamente dopo aver iniziato a lavorare ho controllato i registri delle modifiche e ho scoperto che qualcuno di un altro team - qualcuno di cui ci fidavamo per apportare modifiche al prodotto - aveva verificato il mio codice, modificato un sacco di impostazioni della chiave del registro di sicurezza senza motivo, ricontrollato e non ho mai avuto una revisione del codice o ne ho parlato con nessuno. Fino ad oggi non ho idea di cosa diavolo pensasse di fare; lasciò la compagnia poco dopo. (Di sua iniziativa.)

(AGGIORNAMENTO: alcune risposte ai problemi sollevati nei commenti:

In primo luogo, nota che ho scelto di assumere la posizione di beneficenza secondo cui i cambiamenti della chiave di sicurezza erano involontari e basati sulla disattenzione o sulla non familiarità, piuttosto che sulla malizia. Non ho prove in un modo o nell'altro e credo che sia saggio attribuire errori alla fallibilità umana.

In secondo luogo, i nostri sistemi di check-in sono molto, molto più potenti ora di quanto non fossero dodici anni fa. Ad esempio, ora non è possibile effettuare il check-in del codice senza che il sistema di check-in invii tramite e-mail l'elenco delle modifiche alle parti interessate. In particolare, le modifiche apportate alla fine del ciclo della nave hanno un sacco di "processo" attorno a loro che garantisce che vengano apportate le giuste modifiche per garantire la stabilità e la sicurezza del prodotto.)

Comunque, il bug era che un oggetto che NON era sicuro per essere usato da Internet Explorer era stato rilasciato accidentalmente come contrassegnato come "sicuro per gli script". L'oggetto era in grado di scrivere file binari - in realtà librerie di tipi di automazione OLE - in posizioni arbitrarie del disco. Ciò significava che un utente malintenzionato poteva creare una libreria di tipi che conteneva determinate stringhe di codice ostile, salvarlo in un percorso che era un percorso eseguibile noto, dargli l'estensione di qualcosa che avrebbe causato l'esecuzione di uno script e sperare che in qualche modo l'utente eseguirà accidentalmente il codice. Non conosco attacchi di successo nel "mondo reale" che hanno utilizzato questa vulnerabilità, ma è stato possibile creare un exploit funzionante con esso.

Abbiamo spedito una patch dannatamente veloce per quella, lascia che te lo dica.

Ho causato e successivamente risolto molti più buchi di sicurezza in JScript, ma nessuno di loro è mai arrivato vicino alla pubblicità che si faceva.


81
Probabilmente, si tratta in realtà di 2 exploit di sicurezza; l'altro è come ottenere il codice su un server di build di produzione senza che nessuno si accorga / approvi la modifica ;-p
Marc Gravell

8
"aveva verificato il mio codice, modificato un sacco di impostazioni della chiave del registro di sicurezza senza una buona ragione, ricontrollato e non ho mai avuto una revisione del codice o non ne ho parlato a nessuno" - non mi sembra incompetenza, sembra che l'intenzione maligna di qualcuno sapesse esattamente cosa stavano facendo.
Juliet,

80
"Non attribuire mai alla cattiveria ciò che può essere adeguatamente spiegato dalla stupidità." - Hanlon's Razor
David R Tribble

15
Non esiste un sistema di controllo del codice sorgente obbligatorio per l'utilizzo in Microsoft. Oggi la maggior parte dei team utilizza Source Depot o Team Foundation. Non sorprende che i team di prodotti Visual Studio generalmente utilizzino Team Foundation. Mangia il tuo cibo per cani, lo sai.
Eric Lippert,

40
Chi controlla ZDNet prima di andare al lavoro?
Neil N

274

Spero che tu possa individuare ciò che non va qui. (Terribilmente sbagliato, in effetti):

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

L'ultimo destinatario è stato il più felice;)


226
Stai parlando del fatto che memorizzi password in chiaro o del fatto che l'e-mail non viene mai cancellata? Non sono nemmeno sicuro di cosa sia peggio.
Kristof Provost,

208
Intendi non usare StringBuilder? : D (
Sto

58
@Kristof - Immagino che intenda il fatto che l'ultimo utente abbia un elenco di TUTTI gli utenti e le password. :)
Don Branson,

141
Detesto assolutamente i sistemi che mi inviano via e-mail la mia password come parte del processo di registrazione. Questo ha due difetti: 1. Stanno memorizzando la mia password in chiaro da qualche parte all'interno del loro sistema. Se non il loro database di utenti permanenti, sicuramente il loro sistema di elaborazione della registrazione. 2. È stato inviato tramite EMAIL, in chiaro o HTML, tramite SMTP attraverso i relay di posta su Internet. C'è un certo numero di uomini nel mezzo che potrebbero intercettarlo. Per lo meno, se senti la necessità di inviarmi e-mail con informazioni sicure, permettimi di specificare la mia chiave PGP pubblica per crittografarla!
Jesse C. Slicer,

16
Ho usato gli hash MD5 per proteggere le password in un database una volta. Ma dopo aver eseguito i risultati attraverso una tabella arcobaleno e ho abbinato circa il 50% delle password ... ho pensato che fosse un buon momento per aggiungere un sale.
Matthew Whited,

206

I vecchi terminali stupidi IBM System 36 avevano una combinazione di tasti che avviava la registrazione di una macro. Quindi, quando un terminale non è stato registrato, è possibile avviare la registrazione di una macro e lasciarlo in quella posizione. La prossima volta che qualcuno ha effettuato l'accesso, i tasti sarebbero stati registrati nella macro e la registrazione sarebbe terminata automaticamente quando fossero state registrate le chiavi massime consentite. Torna più tardi e riproduci la macro su accesso automatico.

testo alternativo


204

Il peggior buco di sicurezza che io abbia mai visto è stato effettivamente codificato dal tuo e ha causato il Google Bot per eliminare il mio intero database.

Quando stavo imparando ASP classico per la prima volta, ho codificato la mia applicazione blog di base. La directory con tutti gli script admin è stata protetta da NTLM su IIS. Un giorno sono passato a un nuovo server e ho dimenticato di proteggere nuovamente la directory in IIS (oops).

La home page del blog aveva un collegamento alla schermata di amministrazione principale e la schermata di amministrazione principale aveva un DELETE LINK per ogni record (senza conferma).

Un giorno ho trovato tutti i record nel database cancellati (centinaia di voci personali). Pensavo che qualche lettore fosse entrato nel sito e avesse cancellato maliziosamente ogni record.

Sono venuto a scoprirlo dai registri: il Google Bot aveva eseguito la scansione del sito, seguito il collegamento dell'amministratore e proceduto a seguire tutti i ELIMINA LINK, eliminando così ogni record nel database. Mi sembrava di meritare il premio Dumbass of the Year che veniva inavvertitamente compromesso da Google Bot.

Per fortuna ho avuto i backup.


13
Immagino che mostri quanto sia comune un errore.
si618,

96
Ecco perché dovresti sempre POST per cambiare le azioni.
ricorsivo

7
@recursive: true, ma se la directory non è protetta da password, non impedisce a un essere umano di eliminare tutto.
SconcertatoGoat

2
Ho avuto questo problema con i plugin del browser che precaricano i collegamenti. Una volta ho lavorato per un sito di blog e siamo rimasti perplessi per giorni in cui un utente ha riferito che tutti i commenti sul suo blog sarebbero misteriosamente svaniti.
Matteo

7
No, non ti meriti quel premio. Te lo saresti meritato se fosse successo e non avessi backup.
Ryan Lundy,

187

Il buco peggiore che abbia mai visto è stato un bug in un'applicazione web in cui dare un nome utente e una password vuoti ti farebbe accedere come amministratore :)


144
Un bug o una funzionalità per sviluppatori pigri? :)
si618

9
Ho visto questo codice. Ciò è in genere dovuto al fatto che la ricerca utente utilizza un LIKE, come in "SELEZIONA * DA [Utente] Dove UserName LIKE '%" + userName + "%'". E poiché l'amministratore è in genere il primo utente nel database, restituisce quell'utente.
Vigeant di Pierre-Alain,

11
perché dovresti fare un MI PIACE con un nome utente? ... così potrei essere admin digitando adm quando menziono per digitare Adam
Matthew Whited

20
La maggior parte delle aziende ti offre tre tentativi di accesso con un determinato ID utente prima di bloccare l'account. Quindi è banalmente facile bloccare l' account di qualcun altro con tre password errate.
David R Tribble,

3
L'ho visto in molte webapp aziendali che si autenticano su una directory LDAP. In LDAP, una password vuota provoca un accesso anonimo riuscito . L'utente anonimo non può fare molto, ma le webapp che usano questo meccanismo non arrivano al punto di controllare, ma assumono semplicemente "successo = password corretta"!
SimonJ,

174

Una volta notato questo sull'URL di un sito web.

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

La modifica dell'ultimo parametro in admin = 1 mi ha dato i privilegi di amministratore. Se hai intenzione di fidarti ciecamente dell'input dell'utente, almeno non telegrafare che lo stai facendo!


19
È una funzione utile;) Non hai visto WarGames? Qualcosa come "ogni buon sviluppatore aggiunge una backdoor al proprio sistema" hehe.
alex

38
Quindi forse avrebbero dovuto usare & admin = JOSHUA
JohnFx il

165

L'ho visto in 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>

Niente può battere questo IMHO.


21
Penso che questo potrebbe non essere così stupido come pensi. Questa banale password potrebbe funzionare come il pulsante "sì, vengo dal governo federale" con la differenza che una persona che cerca di abusarne, se viene catturata, può anche essere perseguita per "fornire false credenziali" (o come la chiamano? )
ilya n.

29
ilya: è Javascript, quindi è visibile all'utente. Dopo averlo visto, puoi semplicemente visitare il sito officer.federalsuppliers.com/agents.html , ignorando qualsiasi tipo di controllo.
Alsciende,

68
Non preoccuparti, fino a quando il sito web è protetto da copyright, il DMCA offre una protezione al 100%. Non puoi "eludere" il Javascript.
Steve Hanov,

13
@Steve Hanov: hai una definizione interessante di "eludere" Se scrivo quell'URL nel mio browser ... o addirittura lo copio / incollo ... Non sto bypassando nulla, sto solo usando il mio browser per andare a un indirizzo che ho inserito nella mia barra degli indirizzi. Qual è uno degli scopi previsti di un browser web.
Powerlord,

46
complimenti, sei innocente, peccato che per convincere una giuria ci siano 300k
Dustin Getz,

141

In un'università non meno, che rimarrà senza nome, hanno avuto tutte le loro domande di azione passate attraverso l'URL anziché il modulo pubblicato.

La cosa ha funzionato a meraviglia fino a quando Google Bot è arrivato e ha esaminato tutti i loro URL e cancellato il loro database.


18
Buona vecchia SQL Injection by Design. Ho lavorato con funzionalità di reportistica che ha incorporato quella "caratteristica".
ICodeForCoffee

18
@ICodeForCoffee: dov'è l'iniezione SQL qui? Questo sta solo confondendo gli scopi di GET vs POST. È un errore abbastanza comune da parte degli sviluppatori web alle prime armi. Ricordo di aver letto un articolo del Daily WTF su questo esatto problema.
rmeador,

Non è stata una versione molto antica se Wikipedia ha questo problema? Avevano collegamenti che avrebbero ripristinato le modifiche o qualcosa del genere.
DisgruntledGoat

14
Il vero problema qui è che Googlebot potrebbe cancellare il database senza mai autenticarsi.
MiffTheFox,

34
Spero che siano stati in grado di recuperarli dalla cache di Google.
fastcodejava,

137

Sorpreso che nessuno abbia sollevato l'ingegneria sociale, ma ho preso un calcio fuori da questo articolo .

Riepilogo: gli utenti malintenzionati possono acquistare alcune dozzine di unità flash, caricarle con un virus o un trojan a esecuzione automatica, quindi cospargere tali unità flash nel parcheggio di un'azienda a tarda notte. Il giorno dopo, tutti si presentano al lavoro, inciampano nell'hardware lucido, a forma di caramella, irresistibile e si dicono "oh wow, flash drive gratuito, mi chiedo cosa ci sia!" - 20 minuti dopo viene cancellata l'intera rete aziendale.


69
Autorun è il male.
Mark Ransom,

22
@mmyers: vietare le unità flash non è un buon approccio. Rompere l'autorun / autoplay.
Jay,

10
Letto qualche tempo fa, un altro approccio (dai tempi del floppy disk). Vivi un disco floppy infetto da avvio etichettato "Dati di contabilità - riservati" in un corridoio dell'ufficio e attendi 5 minuti. Irresistibile!
Rodrigo,

13
Fortunatamente, posso sempre eseguire l'avvio da un Live CD di Linux ed esaminare l'unità flash da lì.
David Thornley,

6
@Jay - Purtroppo, quante persone guarderebbero i file e poi fare doppio clic su di essi "per vedere cosa fanno"? Il divieto è una necessità molte volte perché le persone non pensano.
JasCav,


103

Microsoft Bob
(Credit: Dan's 20th Century Abandonware )

Se inserisci la password in modo errato per la terza volta, ti verrà chiesto se hai dimenticato la password.

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

Ma invece di avere sicurezza, come continuare a richiedere la password corretta fino a quando non viene inserita o bloccarti dopo un numero di tentativi errati, puoi inserire qualsiasi nuova password e sostituirà quella originale! Chiunque può farlo con qualsiasi account Microsoft Bob "protetto" con password.

Non è richiesta alcuna autenticazione precedente. ciò significa che l'Utente1 potrebbe cambiare la propria password semplicemente digitando la password tre volte e inserendo una nuova password per la quarta volta, senza dover mai usare "cambia password".

Significa anche che Utente1 potrebbe cambiare le password di Utente2, Utente3 ... esattamente allo stesso modo. Qualsiasi utente può modificare la password di qualsiasi altro utente semplicemente digitando in modo errato tre volte, quindi inserendo una nuova password quando richiesto - e quindi può accedere all'account.

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


7
Questo è lo stesso comportamento di Windows stesso quando un computer non è amministrato da un dominio. Anche su Windows Vista Ultimate, puoi reimpostare una password in qualsiasi momento. Immagino che la negazione del servizio sia considerata una minaccia più grande dell'accesso non autorizzato; soprattutto perché puoi ottenere la maggior parte delle cose semplicemente rimontando l'unità altrove. Credo che lo scopo della password in questo caso sia il rilevamento delle intrusioni piuttosto che la prevenzione.
Jeffrey L Whitledge,

1
@Jeffrey: Il fatto è che, una volta che il cappello nero ha accesso fisico, è praticamente "game over". Se vuoi proteggerti, hai bisogno di una crittografia seria (così come di modi per cercare keylogger hardware e software, ecc.).
David Thornley,

8
Qualcuno più saggio di me ha sottolineato che si tratta solo di una buona modellazione delle minacce. "Bob" era per uso domestico in un'era senza reti ed era molto più probabile che tu soffrissi un tentativo di DOS da parte della tua sorellina o di postumi di una sbornia che da un ladro. Bob ti ha fatto sapere che era stato effettuato l'accesso al tuo account (perché la tua vecchia password non funzionava più) ma non ha provato a fare di più.
bgiles,

20
Mia moglie mi ha appena visto guardare questo ... Lei: "Oh mio Dio! Che programma è ?!" Io: "... Microsoft Bob?" Lei: "Ho adorato Microsoft Bob!" Sospiro ...
Tim Goodman,

10
@ChristianWimmer - Sembra un po 'come dare alle persone uno zaino marchiato "Parachute", così si abituano alla sensazione di uno sulla schiena, ma senza dire loro che non c'è paracadute.
JohnFx,

102

Avevo il vecchio indirizzo di casa di Joe X e avevo bisogno di conoscere il suo nuovo indirizzo attuale nella stessa città, ma non avevo modo di contattarlo. Ho pensato che stesse ricevendo la solita pila quotidiana di cataloghi di vendita per corrispondenza, quindi ho arbitrariamente chiamato il numero 800 per See's Candies (al contrario di Victoria's Secret, o Swiss Colony o di qualsiasi altro grande mailer):

Io: "Ciao, sono Joe X. Penso che tu mi abbia inserito nella tua mailing list due volte, sia al mio vecchio indirizzo che al mio nuovo indirizzo. Il tuo computer mi mostra al [vecchio indirizzo] o al [indirizzo falso] ?"

Operatore: "No, ti mostriamo a [nuovo indirizzo]."


36
Ah, devo amare il social engineering. L'aspetto umano della sicurezza è di solito il più debole.
EMP,


95

Dare 1 = 1 in una casella di testo elenca tutti gli utenti nel sistema.


325
Saluti dai tavoli di Bobby.
Gumbo,

4
come può il commento di @ Gumbo essere votato 4 volte più della risposta?
Lie Ryan,

12
Semplicemente, 4 volte il numero di persone che hanno votato la domanda ha votato il suo commento: /
RobertPitt

4
Uno dei 221 sostenitori del commento di Bobby Tables dirà a tutti noi che diavolo è Bobby Tables?
kirk.burleson,

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

76

Essendo un consulente per la sicurezza delle applicazioni per vivere, ci sono molti problemi comuni che ti consentono di ottenere l'amministratore su un sito Web tramite qualcosa. Ma la parte davvero interessante è quando puoi comprare un milione di dollari di calze.

Era un mio amico che lavorava a questo concerto, ma il fatto era che i prezzi degli articoli in un certo negozio di libri online ora molto popolare (e tutto il resto) erano memorizzati nello stesso HTML come un campo nascosto. Nei primi tempi questo bug ha colpito molti negozi online, stavano appena iniziando a capire il web. Pochissima consapevolezza della sicurezza, intendo davvero chi scaricherà l'HTML, modificherà il campo nascosto e reinoltrerà l'ordine?

Naturalmente abbiamo cambiato il prezzo a 0 e ordinato 1 milione di paia di calze. È inoltre possibile modificare il prezzo in negativo, ma in tal modo una parte del loro overflow del buffer del software di fatturazione back-end termina la transazione.

Se potessi sceglierne un altro, si tratterebbe di problemi di canonicalizzazione del percorso nelle applicazioni web. È meraviglioso poter fare foo.com?file=../../../../etc/passwd


9
Fantastico, non avresti mai più un calzino sinistro mancante!
si618

75
Hai mai preso le calze?
Alex Barrett,

32
L'ordine è andato a buon fine e il sistema di evasione ha avvisato il magazzino. Ci siamo resi conto che probabilmente ha funzionato e abbiamo detto al nostro punto di contatto che avrebbero dovuto interrompere l'ordine. Apparentemente un po 'più tardi un responsabile del magazzino ha chiamato chiedendo l'ordine per essere sicuro che fosse reale. Era saggiamente convinto che si trattasse di un errore del software.
Collin,

27
@StuperUser, In piedi, ovviamente.
Strager

12
Nessun problema con l'archiviazione, basta hackerare il sito Web Ikea per ordinare 100.000 set di cassetti per inserirli,
Neil Aitken,

64

Commettere accidentalmente la password di root del database sul controllo del codice sorgente. Era piuttosto male, perché era il controllo del codice sorgente su Sourceforge.

Inutile dire che la password è stata cambiata molto rapidamente.


144
OK, la password è stata cambiata molto rapidamente ... ma da chi ?
Eamon Nerbonne,

1
Sono stato su questa strada. Molti sistemi (come django, ad esempio) lo incoraggiano praticamente, poiché ti chiedono di inserire la password del tuo DB nel file delle impostazioni, che naturalmente è molto facile da controllare.
mlissner,

56

Non modificare le password dell'amministratore quando i dipendenti IT chiave lasciano l'azienda.


1
o lasciare le impostazioni predefinite di fabbrica come admin / admin (anche o soprattutto nell'hardware) ...
Gnark

47
Ho un peggio - ho lasciato l'università dopo essere stati allineati lungo, con la directory dicendomi che stavano creando un lavoro di grado più elevato per me dopo che io ero laureato, ma in seguito ho scoperto che ha detto il mio manager che erano non a promuovimi. Inutile dire che non ne ero felice. Ho espressamente detto al mio manager di cambiare tutte le password a cui avevo accesso. La settimana dopo la mia partenza ricevo un'e-mail dal mio manager con la password di root, "nel caso ne avessi bisogno". Ho contattato l'amministratore di sistema per assicurarmi che fosse cambiato di nuovo, poiché non volevo cadere se qualcosa fosse andato storto.
Joe,

10
@Sophomore: ricordo nella biografia di Feynman che commentava che molte delle gigantesche casseforti ultra-sicure che custodivano i segreti del progetto Manhattan erano lasciate nelle combinazioni predefinite.
Brian,

12
Posso solo immaginare una spia dell'URSS che si mette in salvo e prova tutto quello che gli viene in mente di rompere la cassaforte, "Accidenti! Non posso romperlo. Non sarebbe divertente se potessi solo ... wow, segnane uno per la madre Russia!"
Eric,

3
Non riesco a sorridere mentre leggo questo, stavo lavorando come tecnico IT un'estate in una società svedese molto nota, e quando sono tornato diversi anni dopo per lavorare come ingegnere, ho avuto qualche problema con l'installazione di software. All'improvviso ho ricordato la vecchia password dell'amministratore e voilà! ha funzionato =)
Viktor Sehr

50

Anche se questo non è il peggior buco di sicurezza che abbia mai visto. Ma questo è almeno il peggio che mi sono scoperto:

Un negozio online di successo per audiolibri ha utilizzato un cookie per memorizzare le informazioni di identificazione dell'utente corrente dopo l'autenticazione riuscita. Ma potresti facilmente cambiare l'ID utente nel cookie e accedere ad altri account e acquistarli.


Wow ... mi è successo esattamente quello che mi è successo su un codice ASP che ho ereditato.
Radu094,

Mantengo un'app che presenta questo problema esatto. È in cima alla lista delle correzioni, per essere sicuri. Per fortuna, non è un sito di e-commerce.
Quentin-starin,

12
Questo accade più spesso di quanto si pensi.
NotMe

47

Proprio all'inizio dell'era .com, stavo lavorando per un grande rivenditore all'estero. Abbiamo osservato con grande interesse i nostri concorrenti che hanno lanciato un negozio online mesi prima di noi. Certo, siamo andati a provarlo ... e abbiamo subito capito che i nostri carrelli della spesa si stavano confondendo. Dopo aver giocato un po 'con la stringa di query, ci siamo resi conto che potevamo dirottare le reciproche sessioni. Con un buon tempismo, potresti cambiare l'indirizzo di consegna ma lasciare solo il metodo di pagamento ... tutto ciò dopo aver riempito il carrello con i tuoi articoli preferiti.


Ovviamente, questo significa che hai fatto qualcosa di malizioso per indurli a inviarti merce fraudolenta se lo fai effettivamente, e hai detto "loro" il tuo indirizzo.
David Thornley,

6
Sì, questo è ciò che lo rende un grave buco nella sicurezza. In realtà non abbiamo premuto il pulsante Acquista, ma avremmo potuto. E, sulla base di notizie, alcune persone lo hanno fatto.
Eric J.

45

Quando sono entrato per la prima volta nella società in cui lavoro attualmente, il mio capo stava esaminando il sito Web di e-commerce esistente di un potenziale nuovo cliente. Ciò avveniva nei primi tempi sia di IIS che dell'e-commerce e, per così dire, la sicurezza era tutt'altro che rigorosa.

Per farla breve, ha modificato un URL (solo per curiosità) e ha capito che la navigazione nella directory non era disattivata, quindi potevi semplicemente tagliare il nome della pagina alla fine dell'URL e vedere tutti i file sul server web.

Abbiamo finito per sfogliare una cartella contenente un database di Access, che abbiamo scaricato. Era l'intero database di clienti / ordini e-commerce, pieno di diverse migliaia di numeri di carte di credito non crittografati.


1
Questo è successo quasi dodici anni fa, quando i siti web basati sui dati erano una novità all'avanguardia; molti siti si sono imbattuti in Access o simili, perché nessuno voleva investire in una licenza di SQL Server per qualcosa che era considerato un "accantonamento" per il loro core business. Come sono cambiate le cose!
Mark Bell,


44

Quando avevo 13 anni la mia scuola ha aperto un social network per gli studenti. Purtroppo per loro ho trovato un bug di sicurezza in cui è possibile modificare l'URI in un altro ID utente come "? ID utente = 123" e accedere per quell'utente. Ovviamente l'ho detto ai miei amici e alla fine il social network delle scuole era pieno di porno.

Non lo consiglierei però.


3
perché non lo consiglieresti? quello che è successo?
Simon_Weaver,

55
@Simon_Weaver: credo che i tredicenni di solito non abbiano un buon gusto per il porno.
slacker

@slacker +1 per metterti a 1000 rep! tranne che non credo che i commenti di valutazione ti
diano

2
"buon gusto per il porno" - c'è un ossimoro.
Zann Anderson,

43

Penso che il campo vuoto nome utente / password per l'accesso dei superutente sia di gran lunga il peggiore. Ma uno che mi sono visto era

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

Peccato che un operatore faccia una differenza così grande.


10
wow, ho naturalmente una compulsione per sistemarlo
wag2639

Il fatto che venga utilizzata una vera password anziché un hash è in realtà anche piuttosto negativo ...
Peter Kriens

Prima ero "cosa c'è che non va?", E poi ero "AAAAaaaaaaaAAAA! OMG"
Bojan Kogoj

42

Il mio sarebbe per una banca di cui ero cliente. Non sono stato in grado di accedere, quindi ho chiamato il servizio clienti. Mi hanno chiesto il mio nome utente e nient'altro - non hanno fatto domande sulla sicurezza o cercato di verificare la mia identità. Quindi, invece di inviare una reimpostazione della password all'indirizzo di posta elettronica che avevano in archivio, mi hanno chiesto a quale indirizzo di posta elettronica inviarlo. Ho dato loro un indirizzo diverso da quello che avevo in archivio e sono riuscito a reimpostare la mia password.

Quindi, in sostanza, tutto ciò che un hacker avrebbe bisogno è il mio nome utente, e quindi potrebbe accedere al mio account. Questo è stato per una grande banca di cui almeno il 90% delle persone negli Stati Uniti avrebbe sentito parlare. Questo è successo circa due anni fa. Non so se fosse un rappresentante del servizio clienti scarsamente addestrato o se quella fosse una procedura standard.


22
e che banca è, per favore?
TigerTiger,

5
@Si: scrive 'I WAS a customer of ...'. Penso che risponda alla domanda. :)
ShdNx,

8
Questo era Washington Mutual, che fu sequestrato dalla FDIC e venduto a Chase all'inizio di quest'anno. Avevano anche strani messaggi di errore. Quando ho provato a impostare la mia password da quella temporanea continuavo a ricevere un errore "Le password non corrispondono", anche se erano uguali e ho persino copiato / incollato. Mi sono reso conto che se mettessi "caratteri non validi" come una barra, invece di dire caratteri non validi, mi darebbe quell'altro messaggio.
Sean,

11
@Elizabeth: Uhm ... ti rendi conto che è per prevenire il phishing giusto? Se qualcuno prova a copiare o imitare il sito web della banca, può sembrare esattamente lo stesso, ma presumibilmente non ha accesso al database, quindi non può ottenere l'immagine di sicurezza giusta. Ecco perché è lì. Non tutti gli utenti sono abbastanza intelligenti da controllare il certificato (che potrebbe essere similmente bluffato)
mpen,

13
Proteggere i tuoi conti finanziari è eccessivo? ...
Joe Phillips,

36

Ne condividerò uno che ho creato. Tipo.

Anni e anni fa l'azienda per cui lavoravo cercava l'indicizzazione sul loro sito Web ASP. Così sono andato e ho installato Index Server, ho escluso alcune directory di amministrazione e tutto è andato bene.

Per quanto sconosciuto a me qualcuno aveva dato a un venditore l'accesso ftp al web server in modo che potesse lavorare da casa, questo era il giorno del dialup ed era il modo più semplice per lui di scambiare file .... e ha iniziato a caricare cose, compresi i documenti che descrivono dettagliatamente il markup sui nostri servizi .... quale server di indicizzazione indicizza e inizia a essere pubblicato quando le persone cercano "Costi".

Ricorda i bambini, le whitelist non le blacklist.


76
Penso che le "whitelist non blacklist", sebbene spesso un buon consiglio, non siano la lezione corretta da imparare qui. La lezione corretta è "non mettere dati privati ​​su un server pubblico". Inoltre, "non consentire agli addetti alle vendite di accedere al server".
rmeador,

7
Oh, l'armonia tra la risposta e l'avatar.
Çağdaş Tekin,

35

Uno dei più semplici, ma davvero convenienti è:

Sistemi di pagamento che utilizzano motori come PayPal possono essere difettosi perché la risposta di PayPal dopo il pagamento ha avuto esito positivo non viene controllata come dovrebbe essere.

Per esempio:

Posso andare su un sito Web per l'acquisto di CD e aggiungere alcuni contenuti al carrello, quindi durante le fasi di pagamento di solito c'è un modulo nella pagina che è stato popolato con campi per paypal e un pulsante di invio a "Paga".

Usando un DOM Editor posso andare nel modulo "live" e cambiare il valore da £899.00a£0.01 quindi fare clic su Invia ...

Quando sono sul lato PayPal, vedo che l'importo è di 1 centesimo, quindi lo pago e PayPal reindirizza alcuni parametri al sito di acquisto iniziale, che convalida solo parametri come payment_status=1 , ecc., Ecc. E non convalidare l'importo pagato.

Ciò può essere costoso se non dispongono di una registrazione sufficiente o se i prodotti vengono spediti automaticamente.

Il peggior tipo di siti sono siti che forniscono applicazioni, software, musica, ecc.


12
+1 concordato. Nella situazione della pagina di pagamento ospitata, il sito Web di origine non dovrebbe consentire all'utente di generare valori da pubblicare; invece la pagina dovrebbe essere posticipata a se stessa facendo clic sull'utente e quindi il server formula e invia un post operativo direttamente al "gateway" di pagamento con i valori appropriati. Tutto dipende da cosa si aspetta il gateway e da come possono essere fatte interazioni con esso, ma non riesco a vedere alcun gateway degno di nota non avere uno scenario più sicuro di quello che hai descritto. Forse mi sbaglio però.
John K,

puoi imitare le richieste di post sul lato server in modo da inviare i dati in questo modo per assicurarti che i dati inviati al gateway siano esattamente così, quindi reindirizzarli con l'intestazione della posizione.
RobertPitt,

PayPal ha un'opzione di crittografia che consente al sito di impedirlo. Il sito invia prima i dati a se stesso, crittografa i dati dell'ordine sul lato server con una chiave nota solo a loro e PayPal, quindi invia i dati a PayPal che li decodifica. I dati degli ordini non crittografati non vengono mai inviati nei campi modulo in questo modo. Tuttavia, è solo un'opzione, quindi non tutti i siti che utilizzano PayPal lo fanno in questo modo. Dovrebbero però!
mikel,

35

Che ne dici di un gestore di documenti online, che ha permesso di impostare tutte le autorizzazioni di sicurezza che ricordi ...

Questo fino a quando non si arriva alla pagina di download ... download.aspx? DocumentId = 12345

Sì, documentId era l'ID del database (incremento automatico) e si poteva eseguire il loop di ogni singolo numero e chiunque poteva ottenere tutti i documenti dell'azienda.

Quando avvisato per questo problema, la risposta del project manager è stata: Ok, grazie. Ma nessuno l'ha notato prima, quindi continuiamo così.


56
Odio davvero quell'atteggiamento, l'ho preso un paio di volte. Mi fa venir voglia di lasciare che gli altri lo facciano solo per insegnargli una lezione.
syaz,

Alla fine ho ottenuto il via libera per riempire un buco come questo nel mio ultimo lavoro ... dopo mesi di lamentele.
mancanza di palpebre

Non è raro trovare siti Web che ti permettano di farlo. Vedrai una directory di articoli recenti o archiviati, ma non puoi tornare più indietro nell'elenco di una o due pagine senza dover accedere. Basta aprire il primo articolo e cambiare il parametro giusto nell'URL in qualsiasi post numero che vuoi vedere qualsiasi articolo.
bob-the-destroyer

2
Ecco un ottimo esempio di questo. In questo articolo del NY Times: nytimes.com/2009/01/14/dining/14power.html?_r=1&ref=dining l'immagine mostrata sostituisce la versione originale molto più esilarante, ancora disponibile qui: graphics8.nytimes.com /images/2009/01/14/dining/14power2_650.jpg
Jamie Treworgy,

34

Una consegna di pizza norvegese ha avuto un buco di sicurezza in cui è possibile ordinare quantità negative di pizze nel loro nuovo e lucido portale Internet e ottenerle gratuitamente.


42
L'altro buco nella sicurezza sono i dipendenti, giusto? "Bene signore, il computer dice che hai 15 pizze gratis, quindi ... eccoti! ... ho un consiglio?"
Nathan Long,

6
... anche la tua pizzeria distribuisce DVD? Oo
mpen,

5
Come ex pizzaiolo ... no, non abbiamo dato un culo ai topi per quel genere di cose. E nemmeno i nostri dirigenti.
mancanza di palpebre

48
Il fattorino non verrebbe a ritirare le pizze che le vendi ?
Jon B,

7
Wow .. e il ragazzo delle consegne ha dovuto darti la mancia? =))
Andrei Rînea,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.