413 Stimmen

Die schlimmste Sicherheitslücke, die Sie je gesehen haben?

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

Hier ein kleiner Einblick in die Frage was zu tun ist, wenn man eine Sicherheitslücke findet, und eine andere mit einigen nützlichen Antworten, wenn ein Unternehmen (scheinbar) nicht antwortet.

8voto

Luka Rahne Punkte 9982

Es handelt sich nicht um eine Sicherheitslücke, sondern um die Schande eines Unternehmens, das seine eigenen Produkte als hochsicher vermarktet (und das ist eines seiner Hauptmerkmale).

Es geht um die "sichere Anmeldung" auf den Seiten für die Partner. Und so geht es:

Beim ersten Mal hat man das Passwort im Klartext per E-Mail bekommen und wenn man sich einloggt, liest man natürlich nicht das Blabla auf dem ersten Bildschirm, sondern sucht einfach, wonach man sucht (Dokument oder Software) und loggt sich dann aus.

Aber hier ist der Trick, das nächste Mal, wenn Sie versuchen, sich einzuloggen, funktioniert Ihr Passwort nicht mehr, weil Sie ein neues Passwort haben sollten, das sie jedes Mal auf der Website unter Ihrem persönlichen Profil veröffentlichen. Nach dem Austausch einiger E-Mails schickten sie mir (per E-Mail) eine Liste mit ca. 30 aufgezählten Einmal-Passwörtern, die ich jeweils nur einmal verwenden kann (ich brauchte eine Woche und einige E-Mails, um diese Liste neu auszuhandeln).

Also druckte ich diese Liste von Passwörtern aus, klebte sie an die Wand vor meinem Schreibtisch und schwärzte jedes Mal ein Passwort mit einem Stift durch, wenn ich mich einloggte. Es ist mir egal, ob jemand, der an meinem Schreibtisch vorbeigeht, diese Liste sieht.

7voto

Glycerine Punkte 6691

So beängstigend, dass ich allen meinen Freunden gesagt habe, sie sollen ihre Konten löschen!


Ich habe an einer beliebten Kasino-Website gearbeitet. Das Flash-Frontend ist nicht nur ein stummes Terminal. Sie hatten einen visuellen Fehler, der Avatarbilder falsch verwaltete. Während der Zeit, in der ich und mein Kumpel wir dieses Problem behoben haben, sind wir auf einen ganz anderen Fehler gestoßen.

Wir haben den Datenverkehr vom Client zum Server beobachtet und festgestellt, dass er base64-kodiert war. Wir dachten, das würde helfen, und erstellten ein einfaches Python-Terminal-Skript, das diesen Datenverkehr anzapfen würde. Wir fanden heraus, dass der Client Befehle und logische Informationen an den Server senden würde.

Innerhalb weniger Minuten konnte ich die Anzahl der Chips, die ich hatte, wer gewonnen hat und welches Blatt ich hatte, ganz einfach im Klartext eingeben!


Ein weiterer schwerwiegender Fehler: Die Kennwörter der Benutzer waren verschlüsselt, Admin-Passwörter waren nicht Über die gleiche Lücke wie zuvor verschaffte ich mir Zugang zu den Datenbankinformationen, fand Admin-Logins und übernahm das System.

7voto

Ichibann Punkte 4231

Mein Freund hat einmal ein Forumsskript in PHP erstellt. Die Passwörter wurden in einer einfachen Textdatei mit dem Namen pass.txt . Natürlich war diese Datei für jeden zugänglich.

7voto

David Morrow Punkte 8043

Nicht das Schlimmste, aber schlimm genug, um einen echten Schaden zu verursachen. Sie wären überrascht, wie oft dies übersehen wird. Vor allem, wenn die Leute einige dieser beliebten Frameworks verwenden,

yourwebapp.com/items/edit.php?id=4
yourwebapp.com/items/delete.php?id=4

Es wird nicht sichergestellt, dass der Eigentümer der Artikel auch derjenige ist, der die Seite anfordert. Das heißt, Sie können sich bei Ihrem Konto anmelden und dann die Artikel einer beliebigen Person in der gesamten Anwendung bearbeiten oder löschen.

Eine einfache Kontrolle kann viel Schaden verhindern.

$item = // find your item by the $_GET[ 'id' ];

if( $_SESSION[ 'user_id' ] != $item[ 'user_id' ] ){
  // kick em out they dont belong...
}

7voto

Vineet Reynolds Punkte 74302
public class AuthenticationServlet extends HttpServlet
{
    private String userName;
    private String password;

    protected doPost(HttpServletRequest req, HttpServletResponse resp)
           throws ServletException, IOException
    {
        userName = request.getParameter("userName");
        password = request.getParameter("password");
        authenticateUser(userName,password);
        ......
    }
}

Wie jemand bei automatisierten Lasttests herausgefunden hat, können Singletons und fehlende Synchronisation Sicherheitsprobleme verursachen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X