Das schlimmste Sicherheitsloch, das Sie gesehen haben? [geschlossen]


413

Was ist die schlimmste Sicherheitslücke, die Sie jemals gesehen haben? Es ist wahrscheinlich eine gute Idee, die Details zu beschränken, um die Schuldigen zu schützen.

Für das, was es wert ist, hier eine Frage, was zu tun ist, wenn Sie eine Sicherheitslücke finden, und eine andere mit einigen nützlichen Antworten, wenn ein Unternehmen nicht (scheinbar) antwortet.


47
Sollte Community-Wiki imo sein ...
ChristopheD

Toller Thread! Ich hoffe, es kann von DailyWTF.com
Dale

Warum geschlossen? Es ist eine völlig vernünftige Frage? !!
Johnc

15
Die 60 Antworten und 28 Gegenstimmen scheinen die 5 Stimmen zu überwiegen, die geschlossen wurden (es dauerte den ganzen Tag, bis sie sich angesammelt hatten, AFAIK). Ich werde jedoch von einer Abstimmung zur Wiedereröffnung Abstand nehmen, bis dies erörtert wurde.
Rmeador

7
Selbst wenn Ihre Frage stundenlang Community-Wiki war, ist der Kommentar immer noch ein guter Kommentar, um ihn zu verbessern, da er die Leute daran erinnert, dass ähnliche Fragen Community-Wiki sein sollten . Das ist was ich denke.
Joren

Antworten:


646

Aus den Anfängen von Online-Shops:

Erhalten Sie 90% Rabatt, indem Sie .1 in das Mengenfeld des Warenkorbs eingeben. Die Software berechnete die Gesamtkosten ordnungsgemäß als 0,1 * -Kosten, und der Mensch, der die Bestellung verpackte, beschönigte einfach das ungerade "." vor der Menge zu verpacken :)


75
Dies ist definitiv ein Argument für die Verwendung eines stark typisierten Systems.
Powerlord

54
Was ist die Seite? Ich möchte einen Rabatt von 90% !!!
Amischiefr

58
Vielleicht hätten Sie stattdessen eine Menge von 0,10 Prozent anfordern sollen. ;)
MiffTheFox

81
Jeff Bezos erwähnte, dass Sie in den frühen Tagen von Amazon eine negative Menge an Büchern haben könnten und Amazon Ihr Konto gutschreiben würde (und vermutlich darauf warten würde, dass Sie es an sie versenden). Siehe 0:47 unter youtube.com/watch?v=-hxX_Q5CnaA
Jeff Moser

10
Hätte gerne das Gesicht des Kunden gesehen, dem tatsächlich die .1-Festplatten geliefert wurden, für die er bezahlt hat.
Relet

575

Die am wenigsten verzeihbare Sicherheitslücke, die leider sehr häufig und leicht zu finden ist, ist Google-Hacking . Ein typisches Beispiel:

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

Es ist erstaunlich, wie viele Seiten im Internet, insbesondere Regierungsseiten, eine SQL-Abfrage über die Abfragezeichenfolge übergeben. Es ist die schlechteste Form der SQL-Injection, und es ist überhaupt kein Aufwand erforderlich, um gefährdete Sites zu finden.

Mit geringfügigen Änderungen konnte ich ungeschützte Installationen von phpMyAdmin, ungeschützte Installationen von MySQL, Abfragezeichenfolgen mit Benutzernamen und Kennwörtern usw. finden.



6
Oh lieber Gott, wie unvorstellbar dumm. Das wäre, wenn ich diesen Entwickler mit einer Box in der Hand zur Personalabteilung marschieren würde.
Squillman

95
kleine Bobby Tische schlagen wieder zu ... xkcd.com/327
gbjbaanb

86
OMFG ... wenn ich das nächste Mal einen schlechten Tag habe, lasse ich ein paar Tische fallen
Michael Niemand

11
Was ich an diesem Beispiel wirklich mag, ist, dass das erste Ergebnis aus einem Oracle-Blog stammt.
Ravi Wallau

400

Soziale Entwicklung:

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

Von bash.org


2
Früher auf Runescape immer passiert.
EvilTeach

7
Es ist sehr unwahrscheinlich, dass dieser spezielle Austausch tatsächlich stattgefunden hat (wer würde "er" eingeben, wenn er versucht, etwas zu vertuschen?), Aber trotzdem lustig.
Michael Myers

1
mmyers: Es ist auch höchst unwahrscheinlich, dass jemand dumm genug ist, um rm-rf'd zu bekommen, aber das passiert definitiv. Ich habe es selbst gesehen :)
Matthew Iselin

25
Es gibt nichts Unsichereres als das Gehirn der Idioten
Earlz

1
@ EvilTeach haben sie das tatsächlich auf RuneScape implementiert. Nicht einmal ein Scherz!
CorsiKa

339

Wahre Geschichte aus meinen frühen Tagen bei Microsoft.

Sie haben bis zu dem Tag, an dem Sie aufwachen und die Überschrift auf ZDNet.com an diesem Morgen sehen, keine Angst gekannt. " schlechteste Internet Explorer-Sicherheitsloch, das jemals in" Blah "entdeckt wurde " sehen, in dem "Blah" Code ist, den Sie selbst sechs Monate zuvor geschrieben haben .

Unmittelbar nach der Arbeit überprüfte ich die Änderungsprotokolle und stellte fest, dass jemand in einem anderen Team - jemand, dem wir vertrauten, um Änderungen am Produkt vorzunehmen - meinen Code ausgecheckt und eine Reihe von Einstellungen für den Sicherheitsregistrierungsschlüssel ohne guten Grund geändert hatte. checkte es wieder ein und bekam nie eine Codeüberprüfung oder erzählte jemandem davon. Bis heute habe ich keine Ahnung, was um alles in der Welt er zu tun glaubte; Kurz darauf verließ er die Firma. (Von sich aus.)

(UPDATE: Einige Antworten auf Probleme, die in den Kommentaren angesprochen wurden:

Beachten Sie zunächst, dass ich mich für die gemeinnützige Position entscheide, dass die Änderungen des Sicherheitsschlüssels unbeabsichtigt waren und eher auf Nachlässigkeit oder Unbekanntheit als auf Bosheit beruhen. Ich habe auf die eine oder andere Weise keine Beweise und glaube, dass es ratsam ist, Fehler der menschlichen Fehlbarkeit zuzuschreiben.

Zweitens sind unsere Check-in-Systeme heute viel, viel stärker als vor zwölf Jahren. Beispielsweise ist es jetzt nicht möglich, Code einzuchecken, ohne dass das Einchecksystem die Änderungsliste per E-Mail an interessierte Parteien sendet. Insbesondere Änderungen, die spät im Schiffszyklus vorgenommen werden, sind mit vielen "Prozessen" verbunden, die sicherstellen, dass die richtigen Änderungen vorgenommen werden, um die Stabilität und Sicherheit des Produkts zu gewährleisten.)

Der Fehler bestand jedenfalls darin, dass ein Objekt, das für die Verwendung in Internet Explorer NICHT sicher war, versehentlich als "sicher für Skripte" gekennzeichnet wurde. Das Objekt war in der Lage, Binärdateien - tatsächlich Bibliotheken vom Typ OLE Automation - auf beliebige Speicherorte zu schreiben. Dies bedeutete, dass ein Angreifer eine Typbibliothek erstellen konnte, die bestimmte Zeichenfolgen feindlichen Codes enthielt, sie in einem Pfad speichern konnte, der ein bekannter ausführbarer Speicherort war, ihr die Erweiterung von etwas geben konnte, das die Ausführung eines Skripts verursachen würde, und hoffen konnte, dass der Benutzer dies irgendwie tat würde versehentlich den Code ausführen. Ich kenne keine erfolgreichen "realen" Angriffe, die diese Sicherheitsanfälligkeit nutzten, aber es war möglich, damit einen funktionierenden Exploit zu erstellen.

Wir haben verdammt schnell einen Patch für diesen ausgeliefert, lassen Sie mich Ihnen sagen.

Ich habe viel mehr Sicherheitslücken in JScript verursacht und anschließend behoben, aber keine von ihnen hat jemals annähernd die Publizität erreicht, die man gemacht hat.


81
Dies sind wohl zwei Sicherheits-Exploits. Die andere ist, wie man Code auf einen Produktions-Build-Server bringt, ohne dass jemand die Änderung bemerkt / genehmigt ;-p
Marc Gravell

8
"Ich habe meinen Code ausgecheckt, eine Reihe von Sicherheitsregistrierungsschlüsseleinstellungen ohne guten Grund geändert, ihn wieder eingecheckt und nie eine Codeüberprüfung erhalten oder jemandem davon erzählt" - klingt für mich nicht nach Inkompetenz klingt wie böswillige Absicht von jemandem, der genau wusste , was er tat.
Julia

80
"Niemals der Bosheit das zuschreiben, was durch Dummheit angemessen erklärt werden kann." - Hanlons Rasiermesser
David R Tribble

15
Es gibt kein einziges Quellcodeverwaltungssystem, das für die Verwendung in Microsoft vorgeschrieben ist. Die meisten Teams verwenden heutzutage entweder Source Depot oder Team Foundation. Es überrascht nicht, dass die Visual Studio-Produktteams im Allgemeinen Team Foundation verwenden. Iss dein eigenes Hundefutter, weißt du?
Eric Lippert

40
Wer überprüft ZDNet, bevor er zur Arbeit geht?
Neil N

274

Ich hoffe, Sie können hier erkennen, was los ist. (Schrecklich falsch):

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

Der letzte Empfänger war der glücklichste;)


226
Sprechen Sie über die Tatsache, dass Sie Klartext-Passwörter speichern oder dass der emailBody nie gelöscht wird? Ich bin mir nicht mal sicher, was schlimmer ist.
Kristof Provost

208
Sie meinen, StringBuilder nicht zu verwenden? : D (nur ein Scherz.)
ShdNx

58
@Kristof - Ich vermute, er meint die Tatsache, dass der letzte Benutzer eine Liste aller Benutzer und Passwörter erhält. :)
Don Branson

141
Ich hasse Systeme, die mir im Rahmen des Registrierungsprozesses mein Passwort per E-Mail zurücksenden . Dies hat zwei Fehler: 1. Sie speichern mein Klartext-Passwort irgendwo in ihrem System. Wenn nicht ihre permanente Benutzerdatenbank, definitiv ihr Registrierungsverarbeitungssystem. 2. Es wurde per E-Mail gesendet, entweder als einfacher Text oder als HTML, wobei SMTP über Mail-Relays über das Internet übertragen wurde. Es gibt eine Reihe von Männern in der Mitte, die dies abfangen könnten. Wenn Sie mir zumindest E-Mails mit sicheren Informationen senden möchten, lassen Sie mich zumindest meinen öffentlichen PGP-Schlüssel angeben, um ihn zu verschlüsseln!
Jesse C. Slicer

16
Ich habe einmal MD5-Hashes verwendet, um die Passwörter in einer Datenbank zu schützen. Aber nachdem ich die Ergebnisse durch eine Regenbogentabelle geführt und ungefähr 50% der Passwörter abgeglichen hatte ... dachte ich, es sei ein guter Zeitpunkt, ein Salz hinzuzufügen.
Matthew Whited

206

Die alten dummen IBM System 36-Terminals hatten eine Tastaturkombination, mit der die Aufzeichnung eines Makros gestartet wurde. Wenn ein Terminal nicht angemeldet war, können Sie die Aufzeichnung eines Makros starten und an dieser Position belassen. Wenn sich das nächste Mal jemand anmeldet, werden die Tastenanschläge im Makro aufgezeichnet und die Aufzeichnung wird automatisch beendet, wenn die maximal zulässigen Tasten aufgezeichnet wurden. Kommen Sie einfach später zurück und spielen Sie das Makro erneut ab, um sich automatisch anzumelden.

Alt-Text


204

Die schlimmste Sicherheitslücke, die ich je gesehen habe, wurde tatsächlich von Ihnen codiert und hat dazu geführt, dass der Google Bot meine gesamte Datenbank gelöscht hat.

Als ich Classic ASP zum ersten Mal lernte, habe ich meine eigene grundlegende Blog-Anwendung codiert. Das Verzeichnis mit allen Administrationsskripten wurde von NTLM auf IIS geschützt. Eines Tages bin ich auf einen neuen Server umgezogen und habe vergessen, das Verzeichnis in IIS erneut zu schützen (oops).

Die Blog-Homepage hatte einen Link zum Haupt-Admin-Bildschirm und der Haupt-Admin-Bildschirm hatte einen DELETE LINK für jeden Datensatz (ohne Bestätigung).

Eines Tages fand ich jeden Datensatz in der Datenbank gelöscht (Hunderte von persönlichen Einträgen). Ich dachte, ein Leser sei in die Site eingebrochen und habe jeden Datensatz böswillig gelöscht.

Ich kam, um aus den Protokollen herauszufinden: Der Google Bot hatte die Site gecrawlt, war dem Admin-Link gefolgt und folgte dann allen DELETE LINKS, wodurch jeder Datensatz in der Datenbank gelöscht wurde. Ich hatte das Gefühl, dass ich die Auszeichnung "Dumbass of the Year" verdient habe, die versehentlich vom Google Bot kompromittiert wurde.

Zum Glück hatte ich Backups.


13
Ich denke, es zeigt, wie häufig ein Fehler ist.
Si618

96
Deshalb sollten Sie immer POSTEN, um Aktionen zu ändern.
rekursiv

7
@recursive: true, aber wenn das Verzeichnis nicht kennwortgeschützt ist, hält es einen Menschen nicht davon ab, alles zu löschen.
DisgruntledGoat

2
Ich hatte dieses Problem mit Browser-Plugins, die Links vorab abrufen. Ich habe einmal für eine Blogging-Site gearbeitet, und wir waren tagelang verwirrt, als eine Benutzerin berichtete, dass alle Kommentare in ihrem Blog auf mysteriöse Weise verschwinden würden.
Matthew

7
Nein, Sie haben diese Auszeichnung nicht verdient. Sie hätten es verdient, wenn dies geschehen wäre und Sie keine Backups hatten.
Ryan Lundy

187

Das schlimmste Loch, das ich je gesehen habe, war ein Fehler in einer Webanwendung, bei dem Sie sich als Administrator anmelden, wenn Sie einen leeren Benutzernamen und ein leeres Kennwort eingeben :)


144
Ein Fehler oder eine Funktion für faule Entwickler? :)
si618

9
Ich habe solchen Code gesehen. Dies liegt normalerweise daran, dass die Benutzersuche ein LIKE verwendet, wie in "SELECT * FROM [User] Where UserName LIKE '%" + userName + "%'". Und da der Administrator normalerweise der erste Benutzer in der Datenbank ist, gibt er diesen Benutzer zurück.
Pierre-Alain Vigeant

11
Warum sollten Sie ein LIKE mit einem Benutzernamen machen? ... damit ich Administrator werden kann, indem ich adm
eingebe,

20
Die meisten Unternehmen geben Ihnen drei Versuche, sich unter einer bestimmten Benutzer-ID anzumelden, bevor sie das Konto sperren. Es ist also trivial einfach, ein anderes Konto mit drei falschen Passwörtern zu sperren .
David R Tribble

3
Ich habe dies in vielen Unternehmens-Webanwendungen gesehen, die sich bei einem LDAP-Verzeichnis authentifizieren. In LDAP führt ein leeres Kennwort zu einer erfolgreichen anonymen Anmeldung. Der anonyme Benutzer kann nicht viel tun, aber die Webanwendungen, die diesen Mechanismus verwenden, gehen nicht so weit, dies zu überprüfen - sie gehen einfach von "Erfolg = korrektes Passwort" aus!
SimonJ

174

Einmal bemerkt dies auf der URL einer Website.

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

Durch Ändern des letzten Parameters in admin = 1 erhielt ich Administratorrechte. Wenn Sie den Benutzereingaben blind vertrauen, telegraphieren Sie zumindest nicht, dass Sie dies tun!


19
Es ist eine praktische Funktion;) Hast du WarGames nicht gesehen? So etwas wie "Jeder gute Entwickler fügt seinem System eine Hintertür hinzu", hehe.
Alex

38
Vielleicht hätten sie & admin = JOSHUA
JohnFx am

165

Ich habe diesen in The Daily WTF gesehen .

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

Nichts kann dieses IMHO schlagen.


21
Ich denke, das ist vielleicht nicht so dumm, wie du denkst. Dieses triviale Passwort könnte wie die Schaltfläche "Ja, ich bin von der Bundesregierung" funktionieren, mit dem Unterschied, dass eine Person, die versucht, es zu missbrauchen, wenn sie erwischt wird, auch wegen "falscher Anmeldeinformationen" (oder wie sie es nennt) strafrechtlich verfolgt werden kann. )
ilya n.

29
ilya: Es ist Javascript, also für den Benutzer sichtbar. Nachdem Sie dies gesehen haben, können Sie einfach zu Officers.federalsuppliers.com/agents.html gehen und jede Art von Kontrolle umgehen.
Alsciende

68
Keine Sorge, solange die Website urheberrechtlich geschützt ist, bietet die DMCA 100% igen Schutz. Sie dürfen das Javascript nicht "umgehen".
Steve Hanov

13
@Steve Hanov: Sie haben eine interessante Definition von "umgehen" Wenn ich diese URL in meinen Browser eingebe ... oder sie sogar kopiere / einfüge ... Ich umgehe nichts, ich benutze nur meinen Browser, um zu gehen eine Adresse, die ich in meine Adressleiste eingegeben habe. Welches ist einer der beabsichtigten Zwecke eines Webbrowsers.
Powerlord

46
Herzlichen Glückwunsch, Sie sind unschuldig, schade, dass es 300.000 kostet, eine Jury davon zu überzeugen, dass
Dustin Getz

141

An einer Universität, die namenlos bleibt, wurden alle ihre Aktionsabfragen über die URL anstatt über das Formular gesendet.

Das Ding war ein Vergnügen, bis Google Bot kam und alle URLs durchlief und die Datenbank löschte.


18
Gute alte SQL Injection von Design. Ich habe mit Berichtsfunktionen gearbeitet, in die diese "Funktion" integriert ist.
ICodeForCoffee

18
@ICodeForCoffee: Wo ist die SQL-Injection hier? Dies verwirrt nur die Zwecke von GET vs POST. Es ist ein ziemlich häufiger Fehler von unerfahrenen Webentwicklern. Ich erinnere mich, dass ich einen täglichen WTF-Artikel über genau dieses Problem gelesen habe.
Rmeador

Hat nicht eine sehr frühe Version, wenn Wikipedia dieses Problem hat? Sie hatten Links, die Änderungen oder etwas zurücksetzen würden.
DisgruntledGoat

14
Das eigentliche Problem hierbei ist, dass der Googlebot die Datenbank löschen kann, ohne sich jemals zu authentifizieren.
MiffTheFox

34
Ich hoffe, sie konnten sie aus dem Google-Cache abrufen.
Fastcodejava

137

Überrascht, dass niemand Social Engineering angesprochen hat, aber ich habe einen Kick aus diesem Artikel bekommen .

Zusammenfassung: Böswillige Benutzer können ein paar Dutzend Flash-Laufwerke kaufen, sie mit einem automatisch ausgeführten Virus oder Trojaner laden und diese Flash-Laufwerke spät in der Nacht auf den Parkplatz eines Unternehmens streuen. Am nächsten Tag kommen alle zur Arbeit, stolpern über die glänzende, bonbonförmige, unwiderstehliche Hardware und sagen sich: "Oh wow, kostenloses Flash-Laufwerk, ich frage mich, was drauf ist!" - 20 Minuten später wird das gesamte Unternehmensnetzwerk abgespritzt.


69
Autorun ist böse.
Mark Ransom

22
@mmyers: Das Verbot von Flash-Laufwerken ist nicht der gute Ansatz. Unterbrechen Sie die automatische Ausführung / automatische Wiedergabe.
Jay

10
Lesen Sie vor einiger Zeit einen anderen Ansatz (von den Diskettenzeiten). Lebe eine mit Boot infizierte Diskette mit der Bezeichnung "Buchhaltungsdaten - vertraulich" in einem Korridor des Büros und warte 5 Minuten. Unwiderstehlich!
Rodrigo

13
Glücklicherweise kann ich immer von einer Linux Live-CD booten und von dort aus das Flash-Laufwerk untersuchen.
David Thornley

6
@ Jay - Leider, wie viele Leute würden sich die Dateien ansehen und dann auf sie doppelklicken, um zu sehen, was sie tun? Ein Verbot ist oft eine Notwendigkeit, weil die Leute nicht denken.
JasCav


103

Microsoft Bob
(Bildnachweis: Dan's Abandonware aus dem 20. Jahrhundert )

Wenn Sie Ihr Passwort ein drittes Mal falsch eingeben, werden Sie gefragt, ob Sie Ihr Passwort vergessen haben.

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

Aber anstatt Sicherheit zu haben, z. B. weiterhin nach dem richtigen Passwort zu fragen, bis es eingegeben wurde, oder Sie nach einer Reihe falscher Versuche zu sperren, können Sie ein neues Passwort eingeben, das das ursprüngliche Passwort ersetzt! Jeder kann dies mit jedem passwortgeschützten Microsoft Bob-Konto tun.

Es ist keine vorherige Authentifizierung erforderlich. Dies bedeutet, dass Benutzer1 sein eigenes Passwort ändern kann, indem er sein Passwort dreimal falsch eingibt und dann das vierte Mal ein neues Passwort eingibt - ohne "Passwort ändern" verwenden zu müssen.

Dies bedeutet auch, dass Benutzer1 die Kennwörter von Benutzer2, Benutzer3 ... genauso ändern kann. Jeder Benutzer kann das Passwort eines anderen Benutzers ändern, indem er es dreimal falsch eingibt und dann bei Aufforderung ein neues Passwort eingibt. Anschließend kann er auf das Konto zugreifen.

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


7
Dies ist das gleiche Verhalten wie bei Windows selbst, wenn ein Computer nicht von einer Domäne verwaltet wird. Selbst unter Windows Vista Ultimate können Sie ein Kennwort jederzeit zurücksetzen. Ich vermute, dass Denial-of-Service als größere Bedrohung angesehen wird als unbefugter Zugriff. Zumal Sie die meisten Dinge nur durch erneutes Mounten des Laufwerks an einer anderen Stelle erhalten können. Ich glaube, der Zweck des Passworts ist in diesem Fall eher die Erkennung von Eindringlingen als die Verhinderung.
Jeffrey L Whitledge

1
@ Jeffrey: Die Sache ist, sobald der schwarze Hut physischen Zugang hat, ist es so ziemlich "Spiel vorbei". Wenn Sie sich davor schützen möchten, benötigen Sie eine ernsthafte Verschlüsselung (sowie Möglichkeiten zum Scannen nach Hardware- und Software-Keyloggern usw.).
David Thornley

8
Jemand, der klüger als ich war, wies darauf hin, dass dies nur eine gute Bedrohungsmodellierung ist. 'Bob' war für den Heimgebrauch in einer Zeit ohne Netzwerk gedacht, und es war weitaus wahrscheinlicher, dass Sie von Ihrer kleinen Schwester oder einem Kater einen DOS-Versuch erlitten haben als von einem Einbrecher. Bob ließ Sie wissen, dass auf Ihr Konto zugegriffen wurde (weil Ihr altes Passwort nicht mehr funktionierte), versuchte aber nicht, mehr zu tun.
Bgiles

20
Meine Frau hat mich gerade gesehen ... Sie: "Oh mein Gott! Welches Programm ist das?!" Ich: "... Microsoft Bob?" Sie: "Ich habe Microsoft Bob geliebt !" Seufz ...
Tim Goodman

10
@ChristianWimmer - Klingt so, als würde man Leuten einen Rucksack mit der Aufschrift "Fallschirm" geben, damit sie sich an das Gefühl eines auf dem Rücken gewöhnen, aber ohne ihnen zu sagen, dass dort kein Fallschirm ist.
JohnFx

102

Ich hatte die frühere Privatadresse von Joe X und musste seine neuere aktuelle Adresse in derselben Stadt kennen, hatte aber keine Möglichkeit, ihn zu kontaktieren. Ich nahm an, dass er den üblichen täglichen Stapel von Versandhandelskatalogen erhielt, also rief ich willkürlich die 800-Nummer für See's Candies an (im Gegensatz zu Victoria's Secret, Swiss Colony oder einem anderen großen Mailer):

Ich: "Hallo, ich bin Joe X. Ich glaube, Sie haben mich zweimal auf Ihrer Mailingliste, sowohl unter meiner alten als auch unter meiner neuen Adresse. Zeigt Ihr Computer mich unter [alte Adresse] oder unter [falsche Adresse] an? ? "

Betreiber: "Nein, wir zeigen Ihnen unter [neue Adresse]."


36
Ah, ich muss Social Engineering lieben. Der menschliche Aspekt der Sicherheit ist normalerweise der schwächste.
EMP


95

Wenn Sie in einem Textfeld 1 = 1 angeben, werden alle Benutzer im System aufgelistet .


325
Grüße von Bobby Tables.
Gumbo

4
Wie kann der Kommentar von @ Gumbo viermal so hoch bewertet werden wie die Antwort?
Lie Ryan

12
Einfach
gesagt

4
Würde einer der 221 Wähler des Bobby Tables-Kommentars dem Rest von uns sagen, was zum Teufel Bobby Tables ist?
Kirk.burleson

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

76

Als Berater für Anwendungssicherheit für den Lebensunterhalt gibt es viele häufig auftretende Probleme, mit denen Sie über etwas auf eine Website zugreifen können. Aber der wirklich coole Teil ist, wenn man Socken im Wert von einer Million Dollar kaufen kann.

Es war ein Freund von mir, der an diesem Gig arbeitete, aber das Wesentliche war, dass die Preise für Artikel in einem bestimmten, jetzt sehr beliebten Online-Buchladen (und allem anderen) im HTML-Code selbst als verstecktes Feld gespeichert wurden. In den frühen Tagen hat dieser Fehler viele Online-Shops gebissen, sie haben gerade erst angefangen, das Web herauszufinden. Sehr wenig Sicherheitsbewusstsein, ich meine wirklich, wer wird den HTML-Code herunterladen, das versteckte Feld bearbeiten und die Bestellung erneut einreichen?

Natürlich haben wir den Preis auf 0 geändert und 1 Million Paar Socken bestellt. Sie können den Preis auch auf negativ ändern, dies hat jedoch dazu geführt, dass ein Teil des Pufferüberlaufs der Backend-Abrechnungssoftware die Transaktion beendet hat.

Wenn ich einen anderen wählen könnte, wären dies Probleme mit der Pfadkanonisierung in Webanwendungen. Es ist wunderbar, foo.com?file=../../../../etc/passwd ausführen zu können


9
Genial, du würdest nie wieder eine fehlende linke Socke haben!
Si618

75
Hast du jemals die Socken bekommen?
Alex Barrett

32
Die Bestellung ging durch und das Fulfillment-System alarmierte das Lager. Wir erkannten, dass es wahrscheinlich funktionierte und sagten unserer Kontaktstelle, dass sie die Bestellung stoppen sollten. Anscheinend rief ein wenig später ein Lagerverwalter an und fragte nach der Bestellung, um sicherzugehen, dass sie echt war. Er war sich weise darüber im Klaren, dass es sich um einen Softwarefehler handelte.
Collin

27
@StuperUser, natürlich auf deinen Füßen.
Strager

12
Kein Problem mit der Lagerung, hacken Sie einfach die Ikea-Website, um 100.000 Sätze Schubladen zu bestellen, um sie
Neil Aitken

64

Das Datenbank-Root-Passwort wird versehentlich für die Quellcodeverwaltung festgelegt. Es war ziemlich schlecht, weil es die Quellcodeverwaltung von Sourceforge war.

Das Passwort wurde natürlich sehr schnell geändert.


144
OK, das Passwort wurde sehr schnell geändert ... aber von wem ?
Eamon Nerbonne

1
Ich war auf dieser Straße. Viele Systeme (wie zum Beispiel Django) empfehlen dies praktisch, da sie Sie auffordern, Ihr DB-Passwort in die Einstellungsdatei
einzutragen

56

Keine Änderung der Administratorkennwörter, wenn wichtige IT-Mitarbeiter das Unternehmen verlassen.


1
oder das Verlassen der Werkseinstellungen wie admin / admin (auch oder besonders in der Hardware) ...
Gnark

47
Ich habe noch eine Schlimmeres - ich habe eine Universität verlassen, nachdem ich mitgenommen worden war. Das Verzeichnis sagte mir, dass sie nach meinem Abschluss einen höherwertigen Job für mich schaffen würden, aber ich fand später heraus, dass er meinem Manager sagte, dass sie das nicht tun sollten fördere mich. Unnötig zu sagen, ich war nicht glücklich darüber. Ich habe meinem Manager ausdrücklich gesagt, dass er jedes Passwort ändern soll, auf das ich Zugriff habe. In der Woche nach meiner Abreise erhalte ich von meinem Manager eine E-Mail mit dem Root-Passwort, "nur für den Fall, dass ich es brauche". Ich habe den Systemadministrator kontaktiert, um sicherzustellen, dass er erneut geändert wurde, da ich den Sturz nicht ertragen wollte, wenn etwas schief ging.
Joe

10
@Sophomore: Ich erinnere mich, dass er in Feynmans Biografie kommentiert hat, dass viele der riesigen, hochsicheren Safes, in denen die Geheimnisse des Manhattan-Projekts untergebracht sind, in den Standardkombinationen belassen wurden.
Brian

12
Ich kann mir nur vorstellen, wie ein Spion der UdSSR in den Safe kommt und alles versucht, was er sich vorstellen kann, um den Safe zu knacken. "Verdammt! Ich kann ihn nicht knacken. Wäre es nicht lustig, wenn ich nur ... wow, einen Treffer erzielen könnte Für Mutter Russland!"
Eric

3
Ich kann beim Lesen nicht lächeln, ich habe einen Sommer als IT-Techniker bei einem sehr bekannten schwedischen Unternehmen gearbeitet, und als ich einige Jahre später als Ingenieur zurückkam, hatte ich Probleme, Software zu installieren. Aus heiterem Himmel erinnerte ich mich an das alte Administratorkennwort und voila! es hat funktioniert =)
Viktor Sehr

50

Obwohl dies nicht die schlimmste Sicherheitslücke ist, die ich je gesehen habe. Aber das ist zumindest das Schlimmste, das ich selbst entdeckt habe:

Ein ziemlich erfolgreicher Online-Shop für Hörbücher verwendete ein Cookie, um die Identifikationsinformationen des aktuellen Benutzers nach erfolgreicher Authentifizierung zu speichern. Sie können jedoch problemlos die Benutzer-ID im Cookie ändern, auf andere Konten zugreifen und diese kaufen.


Wow ... mir ist genau das passiert, was mir auf einem ASP-Code passiert ist, den ich geerbt habe.
Radu094

Ich pflege eine App, die genau dieses Problem hat. Es steht ganz oben auf der Fix-Liste, um sicher zu sein. Zum Glück ist es keine E-Commerce-Website.
Quentin-Starin

12
Dies passiert öfter als die meisten Menschen glauben.
NotMe

47

Gleich zu Beginn der .com-Ära arbeitete ich für einen großen Einzelhändler in Übersee. Wir haben mit großem Interesse beobachtet, wie unsere Konkurrenten Monate vor uns einen Online-Shop eröffnet haben. Natürlich haben wir es ausprobiert ... und schnell festgestellt, dass unsere Einkaufswagen durcheinander geraten. Nachdem wir ein wenig mit der Abfragezeichenfolge gespielt hatten, stellten wir fest, dass wir die Sitzungen des anderen entführen konnten. Mit gutem Timing können Sie die Lieferadresse ändern, aber die Zahlungsmethode in Ruhe lassen ... alles, nachdem Sie den Warenkorb mit Ihren Lieblingsartikeln gefüllt haben.


Dies bedeutet natürlich, dass Sie in böswilliger Absicht etwas unternommen haben, um sie dazu zu bringen, Waren betrügerisch an Sie zu senden, wenn Sie dies tatsächlich tun, und "ihnen" Ihre Adresse mitgeteilt haben.
David Thornley

6
Ja, das macht es zu einer großen Sicherheitslücke. Wir haben den Kaufknopf nicht wirklich gedrückt, aber wir hätten es tun können. Und basierend auf Nachrichtenberichten haben es einige Leute getan.
Eric J.

45

Als ich zum ersten Mal in das Unternehmen eintrat, in dem ich derzeit arbeite, sah sich mein Chef die bestehende E-Commerce-Website eines potenziellen Neukunden an. Dies war in den frühen Tagen von IIS und E-Commerce, und die Sicherheit war, sagen wir, weniger als streng.

Um es kurz zu machen, er änderte eine URL (nur aus Neugier) und stellte fest, dass das Durchsuchen von Verzeichnissen nicht deaktiviert war, sodass Sie einfach den Seitennamen am Ende der URL abschneiden und alle Dateien auf der URL anzeigen konnten Webserver.

Am Ende haben wir einen Ordner mit einer Access-Datenbank durchsucht, die wir heruntergeladen haben. Es war die gesamte E-Commerce-Kunden- / Bestelldatenbank mit mehreren tausend unverschlüsselten Kreditkartennummern.


1
Dies war vor fast zwölf Jahren, als datengesteuerte Websites eine innovative Neuheit waren. Viele Websites liefen gegen Access oder ähnliches, weil niemand in eine SQL Server-Lizenz für etwas investieren wollte, das als "Nebeneffekt" für sein Kerngeschäft angesehen wurde. Wie haben sich die Dinge verändert!
Mark Bell


44

Als ich 13 Jahre alt war, eröffnete meine Schule ein soziales Netzwerk für die Schüler. Leider habe ich einen Sicherheitsfehler gefunden, bei dem Sie den URI in eine andere Benutzer-ID wie "? UserID = 123" ändern und sich für diesen Benutzer anmelden konnten. Offensichtlich erzählte ich es meinen Freunden und am Ende war das soziale Netzwerk der Schule mit Pornos gefüllt.

Würde es aber nicht empfehlen.


3
Warum würdest du das nicht empfehlen? Was ist passiert?
Simon_Weaver

55
@ Simon_Weaver: Ich denke, 13-Jährige haben normalerweise keinen guten Geschmack für Pornos.
lockerer

@slacker +1, um dich auf 1000 Wiederholungen zu bringen! außer ich glaube nicht, dass Bewertungskommentare Ihnen rep geben :-(
Simon_Weaver

2
"Guter Geschmack für Pornos" - es gibt ein Oxymoron.
Zann Anderson

43

Ich denke, das leere Feld für Benutzername / Passwort für den Superuser-Zugriff ist bei weitem das schlechteste. Aber eine, die ich selbst gesehen habe, war

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

Schade, dass ein Bediener einen so großen Unterschied macht.


10
Wow, ich habe natürlich einen Zwang, es zu reparieren
wag2639

Die Tatsache, dass ein echtes Passwort anstelle eines Hash verwendet wird, ist eigentlich auch ziemlich schlecht ...
Peter Kriens

Zuerst war ich "was ist los?" Und dann war ich "AAAAaaaaaaaAAAA! OMG"
Bojan Kogoj

42

Meins wäre für eine Bank, bei der ich Kunde war. Ich konnte mich nicht anmelden und rief den Kundendienst an. Sie fragten mich nach meinem Benutzernamen und sonst nichts - stellten keine Sicherheitsfragen und versuchten nicht, meine Identität zu überprüfen. Anstatt ein zurückgesetztes Passwort an die hinterlegte E-Mail-Adresse zu senden, fragten sie mich, an welche E-Mail-Adresse ich es senden soll. Ich gab ihnen eine andere Adresse als die, die ich gespeichert hatte, und konnte mein Passwort zurücksetzen.

Im Grunde genommen würde ein Hacker nur meinen Benutzernamen benötigen, und er könnte dann auf mein Konto zugreifen. Dies war für eine große Bank, von der mindestens 90% der Menschen in den Vereinigten Staaten gehört hätten. Dies geschah vor ungefähr zwei Jahren. Ich weiß nicht, ob es sich um einen schlecht ausgebildeten Kundendienstmitarbeiter handelte oder ob dies ein Standardverfahren war.


22
und welche Bank ist es bitte?
TigerTiger

5
@ Si: Es schreibt "Ich war ein Kunde von ...". Ich denke, das beantwortet die Frage. :)
ShdNx

8
Dies war Washington Mutual, das von der FDIC beschlagnahmt und Anfang dieses Jahres an Chase verkauft wurde. Sie hatten auch seltsame Fehlermeldungen. Als ich versuchte, mein Passwort über das temporäre Passwort festzulegen, wurde immer wieder der Fehler "Passwörter stimmen nicht überein" angezeigt, obwohl sie identisch waren und ich sogar kopierte / einfügte. Ich erkannte, dass wenn ich "ungültige Zeichen" wie einen Schrägstrich setze, anstatt ungültige Zeichen zu sagen, ich diese andere Nachricht erhalten würde.
Sean

11
@ Elizabeth: Ähm ... du weißt, dass das Phishing verhindern soll, oder? Wenn jemand versucht, die Bank-Website zu kopieren oder nachzuahmen, kann sie genauso aussehen, aber vermutlich hat er keinen Zugriff auf die Datenbank, sodass er nicht das richtige Sicherheitsbild abrufen kann. Deshalb ist das da. Nicht alle Benutzer sind klug genug, um das Zertifikat zu überprüfen (das möglicherweise ähnlich blufft)
mpen

13
Der Schutz Ihrer Finanzkonten ist übertrieben? ...
Joe Phillips

36

Ich werde eine teilen, die ich erstellt habe. So'ne Art.

Vor Jahren und Jahren und Jahren wollte das Unternehmen, für das ich arbeitete, eine Indexierung auf seiner ASP-Website. Also habe ich Index Server eingerichtet, ein paar Admin-Verzeichnisse ausgeschlossen und alles war gut.

Obwohl mir unbekannt war, hatte jemand einem Verkäufer FTP-Zugriff auf den Webserver gewährt, damit er von zu Hause aus arbeiten konnte. Dies waren die Tage der Einwahl und es war der einfachste Weg für ihn, Dateien auszutauschen ... und er begann, Dinge hochzuladen. einschließlich Dokumente, in denen das Markup für unsere Dienste aufgeführt ist .... der Indexserver hat indiziert und wird bereitgestellt, wenn Personen nach "Kosten" suchen.

Denken Sie daran, Kinder, Whitelists nicht Blacklists.


76
Ich denke, "Whitelists nicht Blacklists" sind zwar oft gute Ratschläge, aber nicht die richtige Lektion, um hier zu lernen. Die richtige Lektion lautet "Keine privaten Daten auf einem öffentlichen Server ablegen". "Lassen Sie Vertriebsmitarbeiter nicht auf den Server zugreifen".
Rmeador

7
Oh, die Harmonie zwischen der Antwort und dem Avatar.
Çağdaş Tekin

35

Eine der einfachsten und dennoch kostengünstigen ist:

Zahlungssysteme, die Motoren wie verwenden PayPal verwenden können fehlerhaft sein, da die Antwort von PayPal nach erfolgreicher Zahlung nicht ordnungsgemäß überprüft wird.

Zum Beispiel:

Ich kann auf eine CD-Kauf-Website gehen und Inhalte in den Warenkorb legen. Während der Kaufabwicklung befindet sich normalerweise ein Formular auf der Seite, das mit Feldern für Paypal gefüllt ist, und eine Schaltfläche zum Senden an "Bezahlen".

Mit einem DOM-Editor kann ich in das Formular "live" gehen und den Wert von ändern £899.00 auf£0.01 und dann auf Senden klicken ...

Wenn ich auf der PayPal-Seite bin, kann ich sehen, dass der Betrag 1 Cent beträgt, also bezahle ich das und PayPal leitet einige Parameter an die erste Kaufseite weiter, die nur Parameter wie überprüft payment_status=1 usw. usw. und dies nicht tut Überprüfen Sie den gezahlten Betrag.

Dies kann kostspielig sein, wenn keine ausreichende Anmeldung vorhanden ist oder Produkte automatisch versendet werden.

Die schlechteste Art von Websites sind Websites, die Anwendungen, Software, Musik usw. bereitstellen.


12
+1 Einverstanden. In der Situation mit gehosteten Zahlungsseiten sollte die ursprüngliche Website dem Benutzer nicht erlauben, Werte zu veröffentlichen. Stattdessen sollte die Seite nach einem Klick des Benutzers wieder an sich selbst gesendet werden. Anschließend muss der Server einen Post-Op formulieren und direkt mit den entsprechenden Werten an das Zahlungs-Gateway senden. Es hängt alles davon ab, was das Gateway erwartet und wie Interaktionen mit ihm hergestellt werden können, aber ich kann kein Gateway sehen, das es wert ist, ein sichereres Szenario zu haben als das, was Sie beschrieben haben. Vielleicht irre ich mich aber.
John K

Sie können Post-Anfragen über die Serverseite imitieren, sodass Sie beim Senden der Daten auf diese Weise sicherstellen können, dass die an das Gateway gesendeten Daten genau das sind, und sie dann mit dem Standort-Header umleiten.
RobertPitt

PayPal verfügt über eine Verschlüsselungsoption, mit der die Site dies verhindert. Die Site sendet die Daten zuerst an sich selbst zurück, verschlüsselt die Bestelldaten auf der Serverseite mit einem Schlüssel, der nur ihnen und PayPal bekannt ist, und sendet diese Daten dann an PayPal, das sie entschlüsselt. Unverschlüsselte Bestelldaten werden auf diese Weise niemals in Formularfeldern gesendet. Dies ist jedoch nur eine Option, sodass dies nicht bei jeder Website mit PayPal der Fall ist. Sie sollten aber!
Mikel

35

Wie wäre es mit einem Online-Dokumentenmanager, mit dem jede Sicherheitsberechtigung festgelegt werden konnte, an die Sie sich erinnern konnten ...

Bis Sie zur Download-Seite gelangen ... download.aspx? DocumentId = 12345

Ja, die documentId war die Datenbank-ID (Auto-Inkrement), und Sie konnten jede einzelne Nummer in einer Schleife ausführen und jeder konnte alle Unternehmensdokumente abrufen.

Als ich auf dieses Problem aufmerksam gemacht wurde, lautete die Antwort des Projektmanagers: Ok, danke. Aber das hat noch niemand bemerkt, also lassen wir es so, wie es ist.


56
Ich hasse diese Einstellung wirklich, habe sie ein paar Mal bekommen. Ich möchte, dass andere es tun, nur um ihnen eine Lektion zu erteilen.
Syaz

Ich hatte endlich die Erlaubnis, bei meinem letzten Job ein Loch wie dieses zu füllen ... nachdem ich mich monatelang darüber beschwert hatte.
Augenlidlosigkeit

Es ist nicht ungewöhnlich, Websites zu finden, auf denen Sie dies tun können. Sie sehen ein Verzeichnis der letzten oder archivierten Artikel, können jedoch nicht weiter als ein oder zwei Seiten in der Liste zurückgehen, ohne sich anmelden zu müssen. Öffnen Sie einfach den ersten Artikel und ändern Sie den richtigen Parameter in der URL in einen beliebigen Beitrag Nummer, die Sie einen Artikel sehen möchten.
Bob-the-Destroyer

2
Hier ist ein gutes Beispiel dafür. In diesem Artikel der NY Times: nytimes.com/2009/01/14/dining/14power.html?_r=1&ref=dining ist das gezeigte Bild ein Ersatz für die viel witzigere Originalversion, die hier noch verfügbar ist: graphics8.nytimes.com /images/2009/01/14/dining/14power2_650.jpg
Jamie Treworgy

34

Eine norwegische Pizzalieferung hatte eine Sicherheitslücke, in der Sie negative Mengen Pizzen über das neue und glänzende Internetportal bestellen und kostenlos erhalten konnten.


42
Die andere Sicherheitslücke sind die Mitarbeiter, oder? "Nun, Sir, der Computer sagt, Sie bekommen 15 Pizzen kostenlos, also ... los geht's! ... bekomme ich ein Trinkgeld?"
Nathan Long

6
... Ihre Pizzeria auch DVDs verteilt? Oo
mpen

5
Als ehemaliger Pizzafahrer ... nein, wir haben keinen Rattenarsch über solche Sachen gegeben. Und unsere Manager auch nicht.
Augenlidlosigkeit

48
Würde der Lieferbote nicht vorbeikommen, um die Pizzen abzuholen, die Sie verkaufen ?
Jon B

7
Wow .. und der Lieferbote musste dir das Trinkgeld geben? =))
Andrei Rînea
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.